我有很多字符串的数组。如何按字母顺序对字符串进行排序?
答案 0 :(得分:20)
答案 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()来反转此操作。