这个问题已经有答案了:
Check whether an array is a subset of another(10个答案)
9年前关闭。
给定两组值:
var subset = new[] { 2, 4, 6, 8 };
var superset = new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
字符串
如何判断superset
是否包含subset
的所有元素?
我想到了这个:
superset.Intersect(subset).Count() == subset.Count()
型
这是最合理、最有效的方法吗?
4条答案
按热度按时间wydwbb8l1#
什么都没有怎么样?
字符串
pkwftd7m2#
所以,我的另一个答案很容易使用。但它是一个O(n*m)的解决方案。
这里有一个稍微不友好的O(n+m)解决方案。如果超集是HUGE,应该使用它。它避免了重复枚举超集。
字符串
unhi4e5o3#
我有一个扩展方法,它使用了现有的Contains()-方法。我发现它比使用Instersect()或Except()更直观。
字符串
9jyewag04#
您可以使用Except,结果计数应为0。
有关参数的详细信息,请参阅MSDN。
范例:
字符串