检查列表中的字符串是否包含Linq的特定字符串

Sae*_*ani 19 c# linq

我有一个List<string>像这样的项目:

{"Pre Mdd LH", "Post Mdd LH", "Pre Mdd LL", "Post Mdd LL"}
Run Code Online (Sandbox Code Playgroud)

现在我想执行一个条件来检查列表中的项是否包含特定字符串.就像是:

IF list contains an item that contains this_string

为了简单起见,我想至少检查一下这个列表!包含例如其中包含的项目Mdd LH.

我的意思是:

if(myList.Contains(str => str.Contains("Mdd LH))
{
    //Do stuff
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

Jon*_*eet 68

我想你想要Any:

if (myList.Any(str => str.Contains("Mdd LH")))
Run Code Online (Sandbox Code Playgroud)

熟悉LINQ标准查询运算符非常值得; 我通常会使用那些而不是特定于实现的方法(例如List<T>.ConvertAll),除非我真的被特定运算符的性能所困扰.(通过了解结果的大小等,特定于实现的方法有时可以更有效)


Øyv*_*hen 13

Thast应该很容易

if( myList.Any( s => s.Contains(stringToCheck))){
  //do your stuff here
}
Run Code Online (Sandbox Code Playgroud)


sll*_*sll 7

LINQ Any()可以完成这项工作:

bool contains = myList.Any(s => s.Contains(pattern));
Run Code Online (Sandbox Code Playgroud)

任何(),MSDN:

确定序列的任何元素是否满足条件


slu*_*ter 6

试试这个:

bool matchFound = myList.Any(s => s.Contains("Mdd LH"));
Run Code Online (Sandbox Code Playgroud)

在找到匹配的那一刻,Any()它将停止搜索,因此对于此任务非常有效.