C# 通过列表c同时检查多个字符串#
我有一个列表,如下所示:C# 通过列表c同时检查多个字符串#,c#,arrays,list,linq,lambda,C#,Arrays,List,Linq,Lambda,我有一个列表,如下所示: ALIBABA - 5 PCS BAIDU - 4 PCS FACEBOOK - 1 PCS NIO - 2 PCS 我试图检查该列表是否包含特定字符串,然后获取字符串所在的整个元素。我在网上搜索了一下,发现了这个 var newList = listboxitems.Where(x => x.Contains("ALIBABA")).ToList(); 这让我感到: ALIBABA - 5 PCS 如何在一行中搜索具有更多关键字的更
ALIBABA - 5 PCS
BAIDU - 4 PCS
FACEBOOK - 1 PCS
NIO - 2 PCS
我试图检查该列表是否包含特定字符串,然后获取字符串所在的整个元素。我在网上搜索了一下,发现了这个
var newList = listboxitems.Where(x => x.Contains("ALIBABA")).ToList();
这让我感到:
ALIBABA - 5 PCS
如何在一行中搜索具有更多关键字的更多元素
这是什么
var newList = listboxitems.Where(x => x.Contains("ALIBABA", "BAIDU")).ToList();
因此,期望的输出是:
ALIBABA - 5 PCS
BAIDU - 4 PCS
将“阿里巴巴”、“百度”
放入一个数组:
var-toCheck=new[]{“阿里巴巴”、“百度”}代码>
然后在内部循环数组
listboxitems.Where(x=>toCheck.Any(check=>x.Contains(check))
不幸的是,由于您正在执行的是包含
,因此无法使用哈希集
来加速此操作,您可以创建一个关键字列表
string[] keyword = { "ALIBABA", "Don Box" };
var newList = listboxitems.Where(x => keyword.Contains(x)).ToList();
OP想检查x
是否在任何地方包含关键字,但这不起作用