佐々木屋

技術的なことから趣味まで色々書きます

OrderByメソッド

OrderByメソッドはLINQのソート機能です。コレクションの要素を並べ替えることが可能です。

昇順の場合はOrderByメソッド、降順の場合はOrderByDescendingメソッドを使用します。

int[] values = { 1, 9, 5, 6, 8, 6, 2, 5, 3 };

//昇順
var res_ask = values.OrderBy(x => x).ToList();

//降順
var res_desk = values.OrderByDescending(x => x).ToList();
Dim values As Integer() = {1, 9, 5, 6, 8, 6, 2, 5, 3}

'昇順
Dim res_ask = values.OrderBy(Function(x) x).ToList()

'降順
Dim res_desk = values.OrderByDescending(Function(x) x).ToList()



ValueTupleなどの構造体やデータベース連携などで複数要素を持ったコレクションに対してもソートは有効です。

var sitenList = new List<(int sitenCD, string sitenName)>
                        { (9, "岐阜支店"), (5, "滋賀支店"), (10, "京都支店")
                        , (7, "大阪支店"), (9, "兵庫支店"), (2, "三重支店")};

//sitenCDで昇順
var res_ask = sitenList.OrderBy(x => x.sitenCD).ToList();

//sitenNameで降順
var res_desk = sitenList.OrderByDescending(x => x.sitenName).ToList();
Dim sitenList = New List(Of (sitenCD As Integer, sitenName As String)) From
                         {(9, "岐阜支店"), (5, "滋賀支店"), (10, "京都支店"),
                          (7, "大阪支店"), (9, "兵庫支店"), (2, "三重支店")}

'sitenCDで昇順
Dim res_ask = sitenList.OrderBy(Function(x) x.sitenCD).ToList()

'sitenNameで降順
Dim res_desk = sitenList.OrderByDescending(Function(x) x.sitenName).ToList()