この記事では、文字列リストを並べ替える方法を紹介します。Sortメソッドの引数なしと、ラムダ式を使用したカスタム比較を覚えておけば、昇順/降順ソートのどちらにも対応できます。
準備
まずは、文字列リストを作成します。
List<string> fruits = new List<string> { "Orange", "Banana", "Apple", "Grape" };
昇順ソート(ラムダ式なしの場合)
このリストをアルファベット順に並べ替える場合は引数なしのSortメソッドを使用します。
fruits.Sort();
実行後の並び順
Apple
Banana
Grape
Orange
ラムダ式を使用した昇順ソート
ラムダ式を使用しても上記と同じことができます。この例では、xを基準にyと比較しています。
fruits.Sort((x, y) => x.CompareTo(y));
実行後の並び順
Apple
Banana
Grape
Orange
ラムダ式を使用した降順ソート
おすすめはラムダ式を使用する方法です。=>の右辺を昇順と逆に、yを基準にxと比較することにより降順ソートを実現します。
fruits.Sort((x, y) => y.CompareTo(x));
実行後の並び順
Orange
Grape
Banana
Apple
ラムダ式を使用した特殊な並べ替え
特定の条件で並べ替えを行いたい場合にも、ラムダ式を使用することができます。例えば、文字列の長さが短い順に並べ替えるには以下のようにします。
fruits.Sort((x, y) => x.Length.CompareTo(y.Length));
実行後の並び順
Apple
Grape
Orange
Banana
まとめ
この記事では、文字列リストを並べ替える方法を紹介しました。ラムダ式を使用したソートは応用が利きますので、ぜひ覚えてご活用ください。