我有一个包含月份名称的数组:
String[] months = {"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"July", "Aug", "Sep", "Oct","Nov", "Dec"};
我想对这个数组进行排序。我尝试了不同的代码但失败了。
如何在不使用split方法的情况下对此数组进行排序?
答案 0 :(得分:3)
一个简单的
Array.Sort(month);
按名称对数组进行排序。
如果您想要不同类型的排序,可以使用自己的IComparer
排序。
public class myComp : IComparer<string>
{
#region IComparer<string> Members
public int Compare(string x, string y)
{
return x.ToLower().CompareTo(y.ToLower());
}
#endregion
}
然后再做
Array.Sort(month, new myComp());
答案 1 :(得分:2)
你可以这样排序:
var sortedList = months.OrderBy (s => s).ToArray();
您可以根据需要将s=>s
部分替换为任何其他排序键。例如,如果您想按第二个字符排序,可以写下:
var sortedList = months.OrderBy (s => s[1]).ToArray();
仅供参考,OrderBy
方法是LINQ的一部分,它与C#3.0一起提供。因此,您的文件中应该有using System.Linq
。
答案 2 :(得分:0)
你可以这样试试。
string[] month= new string[]
{
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"July", "Aug", "Sep", "Oct","Nov", "Dec"
};
Array.Sort(month, StringComparer.InvariantCulture);
Array.ForEach(month, x => Console.WriteLine(x));