List<T>をソートするには、List.Sortメソッドを使います。 List.Sortメソッドはメソッドを呼び出したインスタンス自身をソートします。
List.Sortで数値をソートする
using System;
using System.Collections.Generic;
class Sample {
static void Main()
{
// ソート対象のList<int>
var list = new List<int>(new int[] {5, 2, 3, 1, 4});
// ソート
list.Sort();
// ソート結果を表示
foreach (var val in list) {
Console.Write("{0}, ", val);
}
Console.WriteLine();
}
}
実行結果
1, 2, 3, 4, 5,
List.Sortメソッドでは、インスタンス自身をソートします(破壊的変更)。 ソートされたListが新たに作成され戻り値として返されることはありません。 そのため、ソート前の状態も維持しておきたい場合は、あらかじめListの複製を作っておき(ジェネリックコレクション(1) List §.Listの複製)、その後で変更用のListをソートする必要があります。
非破壊的なソートを行いたい場合はEnumerable.OrderByメソッドを使うことができます。
特に順序を指定しない限り、List.Sortメソッドはデフォルトのソート順でソートします。 デフォルトのソート順については基本型とデフォルトのソート順、ソート順の定義については大小関係の定義と比較で解説しています。 逆順でのソートについては§.降順でのソートで後述しています。