如何使条件成两个数组中的元素,Linq C#

时间:2019-01-22 11:06:46

标签: c# linq

如何比较不同数组中的元素或如何制作if ()块?

如果string[] data = { "a", "b" };是具有信息的数组。

string[] b = { "a" };-检查数组。

我必须检查具有b数组的元素是否具有数组data

如果在b中所有元素都像在data中一样,我会做某事......

如果string[] c = { "a", "b", "c", "d" };-不一样,因为data没有“ c”和“ d”

我尝试在块Intersect().Any()中使用if,在c的情况下不起作用,因为Any找到第一个严格的元素

2 个答案:

答案 0 :(得分:1)

您可以使用"Ok. I'll repeat this name: $Name" + !Except

Any

或在大型数组中效率可能较低,但可读性可能更高:

bool containsAll = !data.Except(yourArray).Any();

答案 1 :(得分:0)

如果data仅用于查找,则可以改用HashSet

HashSet<string> data = new HashSet<string>() { "a", "b" };

if (b.All(data.Contains))
{
    // All the strings in b are in data
}

否则,您可以按照@mjwills的建议使用Except

if (!b.Except(data).Any())
{
    // All the strings in b are in data
}