I've got a array of many strings. How can I sort the strings by alphabet?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Sounds like you just want to use the Array.Sort
method.
Array.Sort(myArray)
There are many overloads, some which take custom comparers (classes or delegates), but the default one should do the sorting alphabetically (ascending) as you seem to want.
回答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);
}
}
}
回答3:
Array.Sort also provides a Predicate-Overload. You can specify your sorting-behaviour there:
Array.Sort(myArray, (p, q) => p[0].CompareTo(q[0]));
You can also use LINQ to Sort your array:
string[] myArray = ...;
string[] sorted = myArray.OrderBy(o => o).ToArray();
LINQ also empoweres you to sort a 2D-Array:
string[,] myArray = ...;
string[,] sorted = myArray.OrderBy(o => o[ROWINDEX]).ThenBy(t => t[ROWINDEX]).ToArray();
The default sorting-behaviour of LINQ is also alphabetically. You can reverse this by using OrderByDescending() / ThenByDescending() instead.