关于c#:检查列表中的字符串是否包含Linq的特定字符串

Check if a string within a list contains a specific string with Linq

我有一个List,它有一些像这样的项目:

1
{"Pre Mdd LH","Post Mdd LH","Pre Mdd LL","Post Mdd LL"}

现在,我要执行一个条件,检查列表中的项目是否包含特定的字符串。类似:

IF list contains an item that contains this_string

为了简单起见,我想至少签入一个"如果"列表!例如,包含一个包含Mdd LH的项。

我的意思是:

1
2
3
4
if(myList.Contains(str => str.Contains("Mdd LH))
{
    //Do stuff
}

谢谢。


我想你要的是Any

1
if (myList.Any(str => str.Contains("Mdd LH")))

很值得熟悉LINQ标准查询操作符;我通常使用那些方法,而不是实现特定的方法(如List.ConvertAll),除非我对特定操作符的性能感到真正的困扰。(通过了解结果的大小等,实现特定的方法有时更有效。)


他应该很容易

1
2
3
if( myList.Any( s => s.Contains(stringToCheck))){
  //do your stuff here
}


linq any()将执行以下操作:

1
bool contains = myList.Any(s => s.Contains(pattern));

任何(),MSDN:

Determines whether any element of a sequence satisfies a condition


试试这个:

1
bool matchFound = myList.Any(s => s.Contains("Mdd LH"));

Any()在找到匹配项时将停止搜索,因此这项任务非常有效。


如果你使用含有,你可能会得到假阳性。假设您有一个字符串包含这样的文本:"我的文本数据mdd lh"使用contains方法,此方法将为调用返回true。方法是使用等于运算符:

bool exists = myStringList.Any(c=>c =="Mdd LH")