簡體   English   中英

檢查是否列出 <List<string> &gt;包含一個字符串

[英]Check if List<List<string>> contains a string

我如何檢查是否有任何List<string> S IN一個List包含給定的字符串? 我知道如何使用循環執行此操作,但LINQ /在一行中是否有辦法?

if (lists.Any(sublist => sublist.Contains(str)))
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

PS

當然 - 這可以縮短為:

if (lists.SelectMany(f=>f).Contains("k"))...

你可以這樣做:

bool ifExists = list.Any(x => x.Contains(yourString));

只是為了添加現有答案,鑒於您的列表已排序且大, BinarySearch可能比ContainsAny產生更快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM