我有两个IEnumerable
个对象,我想验证其中一个是否包含另一个的所有元素。
我正在使用obj1.Intersect(obj2).Any()
,但交叉点并没有像我期望的那样工作。即使obj2
中存在obj1
中的一个元素,它也会返回true。
有没有办法验证obj2
中是否存在obj1
的所有元素?
答案 0 :(得分:7)
没有一个LINQ方法可以在不指定lambda的情况下完成所需的操作。但是,有多种方法可以使用LINQ。以下是一些选项(用于测试obj2
是obj1
的子集):
obj1.Intersect(obj2).Count() == obj2.Count()
或
obj2.All(x=>obj1.Contains(x))
或
obj2.Except(obj1).Any()