Пусть у меня есть 2 массива string[] A = { "a", "b", "c" }
и string[] B = { "a", "b", "c", "d", "e" }
,
Есть ли какой-либо метод, который может прямо сказать, что A является подмножеством B? Кроме того, вы просто удалите отдельные элементы 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();
IsSubsetOf()
.
Вы можете комбинировать SequenceEquals и Intersect:
var isASubsetOfB = B.Intersect(A).SequenceEqual(A)