* ちょっと特殊なやり方ですが、Contains()を使って、IN句を表現できる
構文
var 【結果】 = 【対象のリスト】.Where(x => new[] {【IN句の条件リスト】}.Contains(【対象の項目】));
// 以下のように、分けても書ける(この方が分かりやすいかも)
// var 【IN句の条件リスト(変数)】 = new[] {【IN句の条件リスト】};
// var 【結果】 = 【対象のリスト】.Where(x => 【IN句の条件リスト(変数)】.Contains(【対象の項目】));
サンプル
// 店舗クラス
class Shop
{
public int ShopId;
public string ShopName;
}
private void button1_Click(object sender, EventArgs e)
{
var shops = new[]
{
new Shop() {ShopId = 1, ShopName = "shop1"},
new Shop() {ShopId = 2, ShopName = "shop2"},
new Shop() {ShopId = 3, ShopName = "shop3"},
new Shop() {ShopId = 4, ShopName = "shop4"},
new Shop() {ShopId = 5, ShopName = "shop5"},
new Shop() {ShopId = 6, ShopName = "shop6"},
};
// IN句の条件
var inCause = new int[] { 1, 3, 5 };
// ★ここ★
var results = shops.Where(x => inCause.Contains(x.ShopId));
string output = string.Empty;
foreach (var result in results)
{
output = output + result.ShopName + " ";
}
this.label1.Text = output;
}