在Lambda或Linq中验证数组到数组存在

时间:2012-09-12 13:42:35

标签: c# arrays linq lambda

如何检查array2是否是array1的子集?换句话说,我想检查array2中是否存在array1的所有元素?我想在LambdaLinq中找到解决方案。

int[] array1 = {6, 3, 1, 4, 5, 2};
int[] array2 = {1, 2, 3};

3 个答案:

答案 0 :(得分:5)

如果我理解你的问题:

using System.Linq;

if (!array2.Except(array1).Any())
{
    ...validated!
}

答案 1 :(得分:1)

另一个简单LINQ,您可以使用All来检查array2array1的所有项目是否都是:

if (array2.All(array1.Contains))
{
    // array2 is subset of array1
}

答案 2 :(得分:1)

试试,

 int[] array1 = { 6, 3, 1, 4, 5, 2 };
 int[] array2 = { 1, 2, 3 };

 bool isSubset = array2.Count(o => array1.Contains(o)).Equals(array2.Count()) ? true : false;