我有一个带有月份名称的数组:
String[] months = {"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"July", "Aug", "Sep", "Oct","Nov", "Dec"};
我想对这个数组进行排序。我尝试了不同的代码但失败了。
如何在不使用 split 方法的情况下对该数组进行排序?
一个简单的
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());
你可以像这样对它们进行排序:
var sortedList = months.OrderBy (s => s).ToArray();
您可以s=>s
根据需要用任何其他排序键替换部分。例如,如果你想按他们的第二个字符排序,你可以这样写:
var sortedList = months.OrderBy (s => s[1]).ToArray();
仅供参考,OrderBy
方法是 C# 3.0 附带的 LINQ 的一部分。所以你应该using System.Linq
在你的文件中。
你可以这样试试。
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));