如何检查List<string>
中的List
是否包含给定字符串?我知道如何使用循环执行此操作,但LINQ /在一行中是否有办法?
答案 0 :(得分:9)
if (lists.Any(sublist => sublist.Contains(str)))
答案 1 :(得分:1)
var t=lists.SelectMany(f=>f).Contains("str");
完整样本:
var lists = new List<List<string>>();
lists.Add(new List<string>(){"a","b"});
lists.Add(new List<string>(){"b","2"});
lists.Add(new List<string>(){"c","5"});
lists.Add(new List<string>(){"d","7"});
var t=lists.SelectMany(f=>f);
t.Dump();
if (t.Contains("k"))
Console.WriteLine ("yes") ;
else
Console.WriteLine ("no");
结果
no
P.S。
ofcourse - 这可以缩短为:
if (lists.SelectMany(f=>f).Contains("k"))...
答案 2 :(得分:0)
你可以这样做:
bool ifExists = list.Any(x => x.Contains(yourString));
答案 3 :(得分:0)
只是为了添加现有答案,如果您的列表已排序且较大,BinarySearch
可能会比Contains
或Any
更快。