ArrayList
複数のString[]
(文字列配列)を含むがあります。
それぞれString[]
にキーが含まれています。name
私がやりたいのはArrayList
、の値に基づいてソートすることですname
。
比較できないため、使用Array.Sort
できませんでしString[]
た。内にArrayList
ある値に基づいて並べ替えるにはどうすればよいですか?name
String[]
LINQの場合:
var ordered = arrayList.Cast<String[]>().OrderBy(ar => arr[0]);
List<String[]>
通常は、の代わりに強い型を使用することをお勧めしますArrayList
。キーと言うと、一意のキーごとに文字列のリストが必要なように聞こえます。次に、aDictionary<String, String[]>
が最良の選択です。
を使用する必要がありますList<string[]>
。それはすべてをサポートArrayList
し、強く型付けされています。
を使用してList<string[]>
:
IEnumerable<string[]> sorted = myList.OrderBy(s => s[0]);
これを試して
ArrayList arr = new ArrayList();
arr.ToArray().OrderBy(p => p);
Array.Sort(Array、IComparer)を使用して、String[]でキーを検索する独自のComparerを作成して比較します。
IComparer
あなたは用途を作成することができます
public virtual void Sort(
IComparer comparer
)
Array.Sort
必要なカスタム比較を実装するインターフェースを実装するデリゲートまたはクラスのいずれかに渡すことができます。いくつかの例http://bytes.com/topic/c-sharp/answers/235679-two-dimension-array-sortを参照してください。