我有两个清单:
ListA:
"Brown"
"Green"
"Yellow"
"Orange"
ListB:
"Yellow"
"Orange"
如果ListA或ListB彼此包含,我想返回true。在这种情况下,ListB是ListA的一部分。 ListB不一定是小的。
我能想到的唯一解决方案是在双方都做联盟,即首先使用ListB进行ListA,然后使用ListA进行ListB,当且仅当两者都为真时返回true。
这是最好的方法,还是其他方式吗?
我希望获得Linq解决方案
答案 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并检查结果集是否与任一集相同。