[C#] List の Contains とラムダ式による検索
List の中にある値が含まれているかどうかというチェックに関しては、
List の Contains を使えば良い。
しかし、ある値に List に定義された値が含まれているか、という逆のチェックは
List(T).Contains メソッドではチェックできない (そもそも期待する結果にならない)。
これを実現するには、foreach 等でリストを回してチェックすることを思いつくのだが、
ラムダなら 1 行で済む。
これを実現するには、foreach 等でリストを回してチェックすることを思いつくのだが、
ラムダなら 1 行で済む。
var input = " I'd like to have some orange juice."; var fruits = new List{ "apple", "orange", "banana", }; var result1 = fruits.Contains(input); Debug.WriteLine(result1); var result2 = fruits.Exists(w => input.Contains(w)); Debug.WriteLine(result2); var result3 = false; foreach (var x in fruits) { if (input.Contains(x)) { result3 = true; break; } } Debug.WriteLine(result3); // 結果 // result1 = false // result2 = true // result3 = true