【问题标题】:Verify that a list has all the other list values [duplicate]验证列表是否具有所有其他列表值 [重复]
【发布时间】:2016-05-18 04:00:14
【问题描述】:

我有 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 之外的任何东西。

【问题讨论】:

  • 列表是否总是排序的?
  • “c# list contains all”的最高结果是这个duplicate
  • 列表可以不排序

标签: c# linq compare


【解决方案1】:

类似的东西呢:

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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-01
    相关资源
    最近更新 更多