0

カスタム オブジェクト タイプの ArrayList を並べ替えようとして、フラストレーションを感じています。私はLINQを使用しようとしていますが、次のコードはテスト用のものです:

        foreach (classOrder co in orderList)
        {
            MessageBox.Show("Before: " + co.Feet);
        }

        //use LINQ to sort my orderList which is an ArrayList of classOrder objects
        var sortedList = orderList.OfType<classOrder>().OrderBy(r => r.Feet);

        foreach (classOrder co in sortedList)
        {
            MessageBox.Show("After: " + co.Feet);
        }

下部の foreach からの出力は上部と同じであるため、明らかにこれは正しくありません。最初の桁のみをソートしているためです。Feet は文字列ですが、数字が含まれています。どんな助けでも大歓迎です。ありがとう!

4

2 に答える 2

0

カスタムクラスにIComparableiinterfaceを実装する必要があります。そうすれば、単純なList.Sort()関数を使用できます。

于 2013-03-11T21:23:29.897 に答える
0

arrayList の場合、おそらく sort を使用する必要があります。

http://msdn.microsoft.com/en-us/library/8k6e334t.aspx

可能であれば、または特定の目的で必要でない限り、ArrayList を避けることをお勧めします。この場合、OrderBy のような素晴らしい拡張メソッドにアクセスできるため、List または必要なタイプが望ましいでしょう。

于 2013-03-11T21:22:13.140 に答える