2016-08-06 4 views
-2

文字列のリスト内の文字列と一致するかどうかをチェックするC#プログラムがあります。if()文を文字列のリストのanyにマッチングする

現在、私の方法は次のとおりです。

if (Regex.Matches(data, @"String1").Count > 0 || Regex.Matches(data, @"String2").Count > 0 || Regex.Matches(data, @"String3").Count > 0){ 
    /*Code...*/ 
} 

だから、ポイントは、「データ」は、文字列のいずれかと一致するかどうかを確認することです。

このプログラムでは、可能な文字列のかなり長いリストを保持し、毎回リストを更新する必要があるため、このシステムはかなり非効率的です。何が良い方法だろうか?

+3

を正規表現は本当にここに適切なソリューションである場合自問してみてください。次に、個々のアイテムをグループ化して、そのグループ内の各アイテムに対して操作を実行する方法を尋ねます。あなたがするなら、アイテムのコレクション。 –

答えて

3

LINQのをお試しください:

string[] toFind = new string[] {@"String1", @"String2"}; 

    if (toFind.Any(item => data.Contains(item))) { 
    /*Code...*/ 
    } 

あなたは使用に正規表現持っ場合:

string[] patterns = new string[] {@"String1", @"String2"}; 

    if (patterns.Any(item => Regex.IsMatch(data, item)) { 
    /*Code...*/ 
    } 
関連する問題