【发布时间】:2011-03-10 02:12:00
【问题描述】:
我有一个包含许多字符串的数组。如何按字母对字符串进行排序?
【问题讨论】:
我有一个包含许多字符串的数组。如何按字母对字符串进行排序?
【问题讨论】:
【讨论】:
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 还使您能够对二维数组进行排序:
string[,] myArray = ...;
string[,] sorted = myArray.OrderBy(o => o[ROWINDEX]).ThenBy(t => t[ROWINDEX]).ToArray();
LINQ 的默认排序行为也是按字母顺序排列的。您可以改用 OrderByDescending() / ThenByDescending() 来扭转这种情况。
【讨论】:
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);
}
}
}
【讨论】: