【C#】とあるListに複数の要素の内どれか一つが含まれているかを判断する方法

Listに要素が一つ含まれているかを確認する

とある文字列のListにCode1という文字列が含まれているかどうかを調べる場合、以下のようなコードを書けば判断することができます。

var list = new List<string> { "Code1", "Code2", "Code3", "Code4", "Code5" };

var searchStr1 = "Code1";

var result = list.Contains(searchStr1);

Console.WriteLine(result);

実行結果

True

Listに複数の要素が含まれているかを確認する

次は文字列のListにCode1Code3のいずれかが含まれているかどうかを調べる場合です。
先程のコードを発展させて以下の書けば判断することができます。

var list = new List<string> { "Code1", "Code2", "Code3", "Code4", "Code5" };

var searchStr1 = "Code1";
var searchStr2 = "Code3";

var result = list.Contains(searchStr1) || list.Contains(searchStr2);

Console.WriteLine(result);

実行結果

True

この書き方でもいいんですが、検索したい要素が増えていくとメンテナンスが面倒ですね。

Linqをメンテナンス性も良いので、以下のコードを参考にしてください。

var list = new List<string> { "Code1", "Code2", "Code3", "Code4", "Code5" };

var search = new List<string> { "Code1", "Code3" };

var result = list.Where(x => search.Contains(x)).Count() != 0;

Console.WriteLine(result);
Console.ReadLine();

実行結果

True

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA