Linqを使ったListからの値の抽出
Linqを使ってListや配列の抽出を簡単に行える。 ラムダ式を使った方がシンプルに記述できる。
値の抽出
VBの場合
Dim records as New List(Of Person) For i = 0 To 10 Dim man As New Person("Tom", i ) ' Personクラス(名前、番号) records.Add(man) Next ' LINQによる問い合わせ(番号が5未満のレコードのみ抽出) Dim selectedRecord = _ From rcd In records _ Where rcd.number < 5 _ Select red ' ラムダ式を使った場合(番号が5未満のレコードのみ抽出) Dim selectedRecord = cd.Where(Function(rcd) red.number < 5).ToList()
C#の場合
// ラムダ式を使った場合ドのみ抽出) var selectedRecords = records.Where(red => cd.number < 5).ToList();
OrderBy
' 条件1の昇順、条件2の昇順 Dim selectedRecord = cd.Where(Function(rcd) red.number < 5). OrderBy.(Function(rcd) 条件1). ThenBy(Function(rcd) 条件2).ToList() ' 条件1の昇順、条件2の昇順 Dim selectedRecord = cd.Where(Function(rcd) red.number < 5) .OrderByDescending(Function(rcd) 条件1) .ThenByDescending(Function(rcd) 条件2) .ToList()
抽出数を指定
' 4件目から3件のみ抽出する。 Dim selectedRecord = cd.Where(Function(rcd) red.number < 5).Skip(4).Take(3).ToList()