我有2个int
数组,arr1和arr2,例如,验证arr1是否包含arr2包含的所有项目的最有效方法是什么。优先返回bool
。
例如。
arr1 = [1,2,3,4]
arr2 = [1,2,3,4,5,6,9]
//return true;
arr1 = [1,2,3,4,10]
arr2 = [1,2,3,4,5,6,9]
//return false;
我用foreach
做了它,但除了蛮力的foreach之外我还想要什么,如果可能的话。
答案 0 :(得分:9)
如下:
bool subset = !arr1.Except(arr2).Any();
可能会顺利实现为这样的扩展方法:
public static bool ContainsAll<T>(this List<T> list, List<T> other)
{
return !other.Except(list).Any();
}
然后用法:
bool subset = arr2.ContainsAll(arr1);