【发布时间】:2011-03-16 21:19:49
【问题描述】:
我有两个列表:
ListA:
"Brown"
"Green"
"Yellow"
"Orange"
ListB:
"Yellow"
"Orange"
如果 ListA 或 ListB 相互包含,我想返回 true。在这种情况下,ListB 是 ListA 的一部分。 ListB 不一定会更小。
我能想到的唯一解决方案是在两边都做 Union,即首先 ListA 和 ListB,然后 ListB 和 ListA,当且仅当两者都为 true 时才返回 true。
这是最好的方法,还有其他方法吗?
我希望有一个 Linq 解决方案
【问题讨论】:
-
你的意思是列表中的元素是唯一的吗?是的,它们是唯一的字符串。
-
我对 Linq 不够好,无法给出正确的答案,但大致如果两个列表的交集与较小的列表大小相同,则较小的列表包含在较大的列表中。我对使用 Linq 执行此操作没有信心的原因是,我总是不清楚使用 Intersect 是否会在您的列表中给出重复项或只是唯一项。如果您在任一列表中都没有重复项,那么您无需担心这一点。