如何按字母排序字符串数组?
我有很多字符串的数组。 如何按字母顺序对字符串进行排序?
听起来你只想使用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()来反转此操作。