ArrayList複数のString[](文字列配列)を含むがあります。
それぞれString[]にキーが含まれています。name
私がやりたいのはArrayList、の値に基づいてソートすることですname。
比較できないため、使用Array.SortできませんでしString[]た。内にArrayListある値に基づいて並べ替えるにはどうすればよいですか?nameString[]
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を参照してください。