我有List<string>
,其中包含以下内容:
{"Pre Mdd LH", "Post Mdd LH", "Pre Mdd LL", "Post Mdd LL"}
现在我想执行一个条件来检查列表中的项是否包含特定字符串。类似的东西:
IF list contains an item that contains this_string
为了简单起见我想至少检查一下这个列表!包含例如其中包含Mdd LH
的项目。
我的意思是:
if(myList.Contains(str => str.Contains("Mdd LH))
{
//Do stuff
}
感谢。
答案 0 :(得分:66)
我想你想要Any
:
if (myList.Any(str => str.Contains("Mdd LH")))
值得熟悉LINQ standard query operators;我通常会使用那些而不是特定于实现的方法(例如List<T>.ConvertAll
),除非我真的被特定运算符的性能所困扰。 (通过了解结果的大小等,特定于实现的方法有时可以更有效。)
答案 1 :(得分:13)
这应该很容易
if( myList.Any( s => s.Contains(stringToCheck))){
//do your stuff here
}
答案 2 :(得分:7)
LINQ Any()可以完成这项工作:
bool contains = myList.Any(s => s.Contains(pattern));
确定序列的任何元素是否满足条件
答案 3 :(得分:6)
试试这个:
bool matchFound = myList.Any(s => s.Contains("Mdd LH"));
Any()
会在找到匹配的那一刻stop searching,因此对此任务非常有效。
答案 4 :(得分:3)
如果你使用Contains,你可能会得到误报。 假设您有一个包含此类文本的字符串:&#34;我的文本数据Mdd LH&#34; 使用Contains方法,此方法将返回true以进行调用。 方法是使用equals运算符:
bool exists = myStringList.Any(c=>c == "Mdd LH")