我想知道是否可以写这样的东西:
List<string> list;
string sub;
if( list.Contains( s=>s.Contains(sub) ) ) {
//do something
}
我想在代码中看到的是list<string> list
是否包含带有特定子字符串string s
的{{1}},我先前将其设置为值
预先感谢
答案 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));