如何按字母排序字符串数组?

时间:2010-06-30 11:29:51

标签: c# sorting arrays

我有很多字符串的数组。如何按字母顺序对字符串进行排序?

3 个答案:

答案 0 :(得分:20)

听起来你只想使用Array.Sort方法。

Array.Sort(myArray)

有许多重载,其中一些采用自定义比较器(类或委托),但默认情况下应按字母顺序(升序)进行排序。

答案 1 :(得分:2)

class Program    
{
    static void Main()
    {
        string[] a = new string[]
        {
            "Egyptian",
            "Indian",
            "American",
            "Chinese",
            "Filipino",
        };
        Array.Sort(a);
        foreach (string s in a)
        {
            Console.WriteLine(s);
        }
    }
}

答案 2 :(得分:1)

Array.Sort还提供Predicate-Overload。您可以在那里指定您的排序行为:

Array.Sort(myArray, (p, q) => p[0].CompareTo(q[0]));

您也可以使用LINQ对数组进行排序:

string[] myArray = ...;
string[] sorted = myArray.OrderBy(o => o).ToArray();

LINQ还授权您对2D数组进行排序:

string[,] myArray = ...;
string[,] sorted = myArray.OrderBy(o => o[ROWINDEX]).ThenBy(t => t[ROWINDEX]).ToArray();

LINQ的默认排序行为也按字母顺序排列。您可以使用OrderByDescending()/ ThenByDescending()来反转此操作。