检查List <list <string>&gt;包含一个字符串</list <string>

时间:2013-03-24 14:18:11

标签: c# string linq list contains

如何检查List<string>中的List是否包含给定字符串?我知道如何使用循环执行此操作,但LINQ /在一行中是否有办法?

4 个答案:

答案 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();

enter image description here

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可能会比ContainsAny更快。