把一个数组中相同的中文字符串排在一起,并且以这些相同的中文字符串名开头第一个字的拼音字母排序。然后写入另一数组: Sring[ ] StreetSort(String[ ] sStreetList ) 。
如何实现?
使用那种排序方法最方便?

解决方案 »

  1.   

    一个Array.Sort(sStreetList);
    就可以了吧……
      

  2.   

        class Program
        {
            static void Main(string[] args)
            {
                string[] myString = { "谌", "郑","bao", "郑", "ling", "谌", "郑","li","巧","bao"};
                int[] number = new int[15];     //记录具有相同中文的字符的位置
                int  = 0;                   //游标
                string value = "";              //比较的起始字符
                ArrayList myArrayList1 = new ArrayList();       //保存新的顺序            for (int i = 0; i < myString.Count(); i++)
                {
                    value = myString[i];
                    if(Number(i, number))
                        myArrayList1.Add(value);
                    for (int j = i + 1; j < myString.Count(); j++)
                    {
                        
                        if (value == myString[j])
                        {
                            if (Number(i, number))
                                myArrayList1.Add(myString[j]);
                            number[] = j;
                            ++;
                        }
                    }
                }            foreach (string s in myArrayList1)
                    Console.WriteLine(s);            Console.ReadLine();
            }
            /// <summary>
            /// 检查是否有相同字符
            /// 如果有:则不再重复显示,之前比较的时候已经显示过
            /// 如果没有:则显示字符
            /// </summary>
            /// <param name="num"></param>
            /// <param name="str"></param>
            /// <returns></returns>
            private static bool Number(int num,int[] str)
            {
                var v = from u in str
                            where u == num
                            select u;
                if (v.Count() == 0 || num == 0)
                    return true;
                return false;
            }
        }
      

  3.   

    给Array.Sort(Array, IComparer)中的IComparer实现一个比较器,在比较器中根据汉字的首字母来比较。获取首字母可以参考 http://www.kq-it.com/dotnet/3178.html