-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必要に応じて、一部を他のソート キーに置き換えることができます。たとえば、2 番目の文字で並べ替えたい場合は、次のように記述できます。

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 に答える