我有两个IEnumerable对象,我想验证其中一个是否包含另一个的所有元素.
我正在使用,obj1.Intersect(obj2).Any()但交叉口没有像我期望的那样工作.即使只obj2存在其中一个元素,它也会返回true obj1.
有没有办法验证是否obj2存在所有元素obj1?
没有一个LINQ方法可以满足您的需要而无需至少指定一个lambda.但是,有多种方法可以使用LINQ.以下是一些选项(测试if obj2是否为子集obj1):
obj1.Intersect(obj2).Count() == obj2.Count()
Run Code Online (Sandbox Code Playgroud)
要么
obj2.All(x=>obj1.Contains(x))
Run Code Online (Sandbox Code Playgroud)
要么
obj2.Except(obj1).Any()
Run Code Online (Sandbox Code Playgroud)