c# - 使用 linq 查找 List<List<string>> 的多个值中的任何一个

标签 c# linq

我的列表如下:List<List<string>> .

我需要检查嵌套列表的第一个值是否等于某些值。

这就是我所做的并且有效:

if (myList.Any(sb => 
               sb.First() == "Value1" || 
               sb.First() == "Value2" || 
               sb.First() == "Value3" || 
               sb.First() == "Value4"))

我想知道是否有办法以不重复 sb.First() 的方式进行查询? 我的实现方式对性能有影响吗?

最佳答案

你可以有一个值数组并检查它是否包含 sb.First() 中的任何内容,如下所示:

if (myList.Any(sb => 
           new HashSet<string> {"Value1", "Value2", "Value3", "Value4"}.IndexOf(sb.First()) > -1)

关于c# - 使用 linq 查找 List<List<string>> 的多个值中的任何一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54091465/

相关文章:

c# - 远程复制本地文件,执行并带回输出

C# ASP.NET MVC 返回上一页

c# - 如何正确地为 XAML 中的数据绑定(bind)添加前缀(或后缀)?

linq - 当 IQueryable 没有返回记录时 ToList() 抛出异常

c# - 是否有任何预先存在的可枚举扩展使其 NullReferenceException 安全?

c# - 从服务器收到的证书无效。错误代码 : 0xffffffff800b010a Mono

c# - 在 C# 中发送要在服务器上执行的代码 - 就像 Java RMI

c# - 使用 Crystal Report 打印发票

c# - linq从属性等于值的对象数组中删除项目

c# - 如何自动创建一个与 Access 表兼容的类?