如何检查列表中是否包含具有特定条件的字符串

时间:2018-11-28 10:08:49

标签: c#

我想知道是否可以写这样的东西:

List<string> list;
string sub;
if( list.Contains( s=>s.Contains(sub) ) ) {
    //do something
}

我想在代码中看到的是list<string> list是否包含带有特定子字符串string s的{​​{1}},我先前将其设置为值

预先感谢

3 个答案:

答案 0 :(得分:7)

可以使用linq完成

list.Where(s => s.Contains(sub))

这会给您一个包含所有包含子字符串的字符串的列表。

如果只想检查任何字符串是否包含子字符串,则可以使用方法Any

if (list.Any(s => s.Contains(sub))) {...

答案 1 :(得分:1)

您可以像下面那样使用

var newList = list.Where(x=>x.Contains(sub)).ToList();
if(newList != null && newList.Count> 0){
   //Do something here
}

它将返回包含子字符串的列表

答案 2 :(得分:0)

list.Contains("foo"),在这段代码中Enumerable.Contains method检查列表是否包含指定的元素。完全匹配。

您想要的是:

1 /。选择与子模式匹配的元素: Where

var elementsWithSubPattern = list.Where(s => s.Contains(sub)); 

2 /。检查此列表中是否有任何与子模式匹配的元素:Any

bool anyMatch = list.Any(s => s.Contains(sub)); 

3 /。检查是否所有元素都与子模式匹配: All

bool allMatch = list.All(s => s.Contains(sub));