2011-02-01 8 views
0

カスタムクラスをソートすると、IComparableインターフェイスを実装する必要があることがわかりました。 しかし、この場合、私は "文字列クラス"を制御することはできません。文字列のみを含むArrayListをソートする最も簡単な方法は何ですか?

ありがとうございます。代わりにcatingから防ぐために、ArrayListの使用一覧の

+0

文字列はすでにIComparableを実装しているため、L ist.Sortは以下のように動作します。 :)これは実装されているクラス(カスタムクラスを実装している場合など)で動作します。 – Tridus

答えて

2

参照ください。

1

ArrayListを使用していますか?これは事前の汎用レガシーコレクションであり、すべての目的と目的のためにListに置き換えられています。リストを使用している場合は、sort()メソッドを使用すればすべてが処理されます。

1

まず、ArrayListの代わりにList<string>を使用することをおすすめします。これは.Sort()メソッドを提供し、「うまくいく」方法です。

そうでない場合は、次のようなのArrayListからこれを実行するためにLINQを使用することができます。より効率的であるArrayList.Sortを使用して

// This makes a new List<T> 
var sorted = arrayList.Cast<string>().OrderBy(s => s).ToList(); 

、それは...ではなく、コピーの代わりにソートします

arrayList.Sort(); 
+0

配列リストにはリストのようなソート方法があります。 –

+0

@Saeed:はい、私は知っています - OPはIComparableを避けたかったのですが... –

+0

なぜIComparableですか?この場合、これは必要ありません。 –

関連する問題