如何按字母排序字符串数组?
答
答
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也empoweres你整理一个二维数组:
string[,] myArray = ...;
string[,] sorted = myArray.OrderBy(o => o[ROWINDEX]).ThenBy(t => t[ROWINDEX]).ToArray();
LINQ的默认排序行为也是按字母顺序排列的。您可以通过使用OrderByDescending()/ ThenByDescending()来取消。
+1仅提及其默认行为。它不会按字母顺序排序,您需要欺骗它或实施自己的排序。 – 2010-06-30 11:32:37
或只是.Sort(),如果他们在列表中 – simendsjo 2010-06-30 11:32:48
+1对于更复杂的排序,我会看一看IComparable接口或Linq的Sort表达式 – armannvg 2010-06-30 12:45:41