-4

我有一个带有月份名称的数组:

String[] months = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", 
                   "July", "Aug", "Sep", "Oct","Nov", "Dec"};

我想对这个数组进行排序。我尝试了不同的代码但失败了。

如何在不使用 split 方法的情况下对该数组进行排序?

4

3 回答 3

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());
于 2013-09-08T07:50:54.983 回答
2

你可以像这样对它们进行排序:

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在你的文件中。

于 2013-09-08T07:51:15.357 回答
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));
于 2013-09-08T07:46:02.807 回答