C#Linq - 给出两个列表,如何判断它们中是否包含其中一个

时间:2011-03-16 13:14:29

标签: c# linq

我有两个清单:

ListA:

"Brown"
"Green"
"Yellow"
"Orange"

ListB:

"Yellow"
"Orange"

如果ListA或ListB彼此包含,我想返回true。在这种情况下,ListB是ListA的一部分。 ListB不一定是小的。

我能想到的唯一解决方案是在双方都做联盟,即首先使用ListB进行ListA,然后使用ListA进行ListB,当且仅当两者都为真时返回true。

这是最好的方法,还是其他方式吗?

我希望获得Linq解决方案

3 个答案:

答案 0 :(得分:5)

你可以尝试:

int count = ListA.Intersect(ListB).Count();
if ((count == ListA.Count()) || (count == ListB.Count())) {
    // One list contains other
}

答案 1 :(得分:4)

检查a.Except(b)b.Except(a)是否为空。

答案 2 :(得分:1)

您可以使用intersect method并检查结果集是否与任一集相同。