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

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

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

 Array.Sort(myArray) 

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

 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); } } } 

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()来反转此操作。