テーブルの行データのような多次元配列に対して、複数のキー、順序で並べ替える方法。
OrderByとThenBy
複数のキーで並べ替える場合、OrderByとThenByを使う方法がある。
DataTable sample ID | Name | Age 01 | TANAKA | 30 02 | TANAKA | 54 03 | AIBA | 32 04 | WADA | 21
上記のDataTableを、Name昇順、Age降順で処理したい場合、以下の通り。
DataRow[] rows = sample.Select();
var sortedRows = rows.OrderBy(x => x.Name).ThenByDescending(x => x.Age);
foreach (DataRow row in sortedRows)
{
Console.WriteLine(row[0].ToString());
}
// 出力結果
03
02
01
04
解説
昇順の場合、OrderBy、ThenByを使う。
降順の場合、OrderByDescending、ThenByDescendingを使う。