将if()语句与字符串列表中的任意一个匹配

本文关键字:任意一 列表 字符串 if 语句 | 更新日期: 2023-09-27 18:01:04

我有一个C#程序,我需要在其中检查字符串是否与字符串列表中的任何一个匹配。

目前我的方法是:

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

因此,重点是查看"数据"是否与任何字符串匹配。

这个程序要求我保留一个很长的可能字符串列表,并不时更新列表,所以这个系统效率很低。有什么更好的方法?

将if()语句与字符串列表中的任意一个匹配

尝试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...*/
  }