C# 使用linq查找List的多个值中的任意一个

C# 使用linq查找List的多个值中的任意一个,c#,linq,C#,Linq,我的列表看起来像:list 我需要检查嵌套列表的第一个值是否等于某些值 这就是我所做的,它正在发挥作用: if (myList.Any(sb => sb.First() == "Value1" || sb.First() == "Value2" || sb.First() == "Value3" || sb.First() == "Value4")) 我想知道是

我的列表看起来像:list

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

这就是我所做的,它正在发挥作用:

if (myList.Any(sb => 
               sb.First() == "Value1" || 
               sb.First() == "Value2" || 
               sb.First() == "Value3" || 
               sb.First() == "Value4"))
我想知道是否有一种方法可以使查询不重复sb.的第一句话? 我的实现方式对性能有影响吗?

您可以先创建一个哈希集来包含以下值:

var container = new HashSet<string> {"Value1", "Value2", "Value3", "Value4"};
您可以首先创建一个哈希集来包含以下值:

var container = new HashSet<string> {"Value1", "Value2", "Value3", "Value4"};

您可以拥有一个值数组,并检查它是否包含sb中的任何内容。首先,如下所示:

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

您可以拥有一个值数组,并检查它是否包含sb中的任何内容。首先,如下所示:

if (myList.Any(sb => 
           new HashSet<string> {"Value1", "Value2", "Value3", "Value4"}.IndexOf(sb.First()) > -1)
应该这样做,使用a来改进字符串比较


应该这样做,使用a来改进字符串比较。

您也可以这样做:

        if (l.Any(x =>
        {
            var sb = x.First();
            return sb == "Value1" ||
                   sb == "Value2" ||
                   sb == "Value3" ||
                   sb == "Value4";
        }))
        {
            // true
        }

你也可以这样做:

        if (l.Any(x =>
        {
            var sb = x.First();
            return sb == "Value1" ||
                   sb == "Value2" ||
                   sb == "Value3" ||
                   sb == "Value4";
        }))
        {
            // true
        }

创建一个包含所有可能值的数组,即var array=new[]{Value1,Value2,Value3,Value4},然后检查myList.Anysb=>array.Containssb.First?如果myList是IList类型,它将只调用sb[0]==Value1,等等。创建一个包含所有可能值的数组,即var array=new[]{Value1,Value2,Value3,Value4},然后检查myList.Anysb=>array.Containssb.First?如果myList的类型是IList,它将只调用sb[0]==Value1,等等。那么:新建字符串[]->哈希集如何?是的,哈希集可能更好。如果要使用哈希集,那么最好接受建议它的答案之一,而不是我对数组的建议…新建字符串[]如何->哈希集?是的,哈希集可能更好。如果要使用哈希集,最好接受其中一个建议的答案,而不是我对数组的建议。。。