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

C# 检查列表中的字符串是否包含具有Linq的特定字符串,c#,linq,C#,Linq,我有一个列表,其中包含以下项目: {"Pre Mdd LH", "Post Mdd LH", "Pre Mdd LL", "Post Mdd LL"} 现在我想执行一个条件,检查列表中的项目是否包含特定字符串。比如: if(myList.Contains(str => str.Contains("Mdd LH)) { //Do stuff } 如果列表包含包含此字符串的项 为了简单起见,我想在一次检查中,如果列表至少!例如,包含包含Mdd LH的项目 我的意思是: if(myL

我有一个
列表
,其中包含以下项目:

{"Pre Mdd LH", "Post Mdd LH", "Pre Mdd LL", "Post Mdd LL"}
现在我想执行一个条件,检查列表中的项目是否包含特定字符串。比如:

if(myList.Contains(str => str.Contains("Mdd LH))
{
    //Do stuff
}
如果列表包含包含此字符串的项

为了简单起见,我想在一次检查中,如果列表至少!例如,包含包含
Mdd LH
的项目

我的意思是:

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

谢谢。

这应该很简单

if( myList.Any( s => s.Contains(stringToCheck))){
  //do your stuff here
}
我想你想要:

这是非常值得熟悉的;我通常会使用这些方法,而不是特定于实现的方法(例如
List.ConvertAll
),除非我真的被特定操作符的性能所困扰。(通过了解结果的大小等,特定于实现的方法有时会更有效。)

尝试以下方法:

bool matchFound = myList.Any(s => s.Contains("Mdd LH"));
Any()
将在找到匹配项时立即启动,因此对于此任务非常有效。

LINQ Any()将完成此任务:

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

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


如果你使用Contains,你可能会得到误报。 假设您有一个包含此类文本的字符串:“My text data Mdd LH” 使用Contains方法,此方法将为调用返回true。 方法是使用等于运算符:


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

这正是海报想要实现的,在sql中是一个“like”,所以我想这些都是“积极的积极的”,不需要相等的。我们如何使它成为不区分大小写的搜索?Contains没有重载方法。@Ankur-m:您可以使用
IndexOf
来代替,传入
StringComparison
。如果这还不够详细,请问一个新问题(当然是在搜索现有问题之后)。我可以使用IndexOf。然而,我不得不使用FindIndex而不是任何。我仍在寻找任何一个都不起作用的原因。是的,我在第一次搜索中找不到类似的帖子。非常感谢你的帮助@Ankur-m:如果你仍然困惑,我建议你问一个新问题——如果你不需要索引,那么任何字符串都应该有效。@ManikArora:因为任何字符串“包含”空字符串。这更多的是关于
string.Contains
,而不是关于
Any
。看见