【C#】文字列リストを昇順/降順にソートする(ラムダ式を使用)

C#

この記事では、文字列リストを並べ替える方法を紹介します。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

まとめ

この記事では、文字列リストを並べ替える方法を紹介しました。ラムダ式を使用したソートは応用が利きますので、ぜひ覚えてご活用ください。

タイトルとURLをコピーしました