
SQLのINのように指定した複数の条件に一致するデータを抽出することはできますか?



LINQラムダ式のWhere区でContainsを使って条件に一致したデータを取得することができます。
目次
指定した複数条件が一致するデータを抽出
LINQのWhere句では、Containsメソッドを利用することで、SQLの「IN」句のように、複数の条件に一致するデータを取得することができます。
リスト.Where(x => IN区のリスト.Contains(x.Item1))
例えば、以下のようなコードを書くことで、指定した複数のIDを持つデータを抽出することができます。
List<(int, string)> lstItem = new List<(int,string)> {(1,"sakura"),
(2, "suisei"),
(3, "usada"),
(4, "korone"),
(5, "koyori") };
List<int> inItem = new List<int> { 1, 2 };
var ret = lstItem.Where(x => inItem.Contains(x.Item1)).ToList();
ret.ForEach(x => Debug.WriteLine(x));
Dim lstItem As New List(Of (Integer, String))
lstItem.Add((1, "sakura"))
lstItem.Add((2, "suisei"))
lstItem.Add((3, "usada"))
lstItem.Add((4, "korone"))
lstItem.Add((5, "koyori"))
Dim inItem As New List(Of Integer)() From {1, 2}
Dim ret = lstItem.Where(Function(x) inItem.Contains(x.Item1)).ToList()
ret.ForEach(Sub(x) Debug.WriteLine(x))
(1, sakura)
(2, suisei)
このように、C#やVB.NETでは、LINQのWhere句とラムダ式を使用することで、簡単に複数の条件に一致するデータを抽出することができます。