我有2个数组string[] A = { "a", "b", "c" }
和string[] B = { "a", "b", "c", "d", "e" }
。
是否有任何方法可以直接判断A是B的子集?除了只删除B的不同元素,但不知道它是否完全是B的子集。
感谢您的帮助。
答案 0 :(得分:9)
你可以这样做,只需:
A.All(B.Contains);
您可能需要检查Length
以确保它们的大小不同而A
是一个子集
bool isSubset = A.All(B.Contains) && A.Length < B.Length;
答案 1 :(得分:8)
甚至还有一种用于此目的的方法。您可以使用HastSet<T>.IsSubsetOf
:
var aSet = new HashSet<string>(A);
bool isASubsetOfB = aSet.IsSubsetOf(B);
答案 2 :(得分:3)
这应该有效
bool isSubSet = !A.Except(B).Any();
答案 3 :(得分:2)
您可以组合SequenceEquals和Intersect:
var isASubsetOfB = B.Intersect(A).SequenceEqual(A)