是否有Linq方法来判断a是B的子集
本文关键字:子集 判断 Linq 方法 是否 | 更新日期: 2023-09-27 18:26:15
让我们有两个数组string[] A = { "a", "b", "c" }
和string[] B = { "a", "b", "c", "d", "e" }
。
有没有任何方法可以直接判断A是B的子集?Except只会删除B的不同元素,但不会判断它是否完全是B的子集。
谢谢你的帮助。
您可以简单地做到这一点:
A.All(B.Contains);
您可能需要检查Length
以确保它们的大小不相同,并且A
是的子集
bool isSubset = A.All(B.Contains) && A.Length < B.Length;
甚至有一个方法可以用于此目的。您可以使用HastSet<T>.IsSubsetOf
:
var aSet = new HashSet<string>(A);
bool isASubsetOfB = aSet.IsSubsetOf(B);
这应该能在中工作
bool isSubSet = !A.Except(B).Any();
您可以组合SequenceEquals和Intersect:
var isASubsetOfB = B.Intersect(A).SequenceEqual(A)