作成したかったもの
- カテゴリ分けされた 約1,000個の データが存在。
- データから、LINQで複数の抽出条件を設定して、条件に合致するデータだけを抽出したい。
- 複数の条件をLINQのwhere句(OR条件)にしたい。
記述例
※ ここでは、データの抽出条件を文字列(String)で行っています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
//whereの条件にするstring配列を用意 string[] s_filter = new string[2]; //抽出条件の設定 s_filter[0] = "aaa"; s_filter[1] = "bbb"; //dt → 「Category」という列を持つDataTable //この「Category」からs_filterの文字列と合致するデータだけを抽出する DataRow[] rows = ( from row in dt.AsEnumerable() let category = row.Field<string>("Category") where s_filter.Any(item => category.Contains(item)) select row ).ToArray(); //抽出条件に合致した数を表示 Console.WriteLine("Rows Count: " + rows.Count()); |
補足
whereに設定の条件は、AND、ORにすることができます。
AND → where s_filter.All(item => category.Contains(item))
OR → where s_filter.Any(item => category.Contains(item))