Существует ли простой способ получить относительное дополнение двух наборов? Возможно, с помощью LINQ?
Я должен найти относительный комплимент набора относительно B. И A и B имеют тип HashSet
но я думаю, что алгоритм мог быть сделан более общим (IEnumerable
или даже ISet
)?
Я мог использовать решение или в VB.NET или в C#.
Пробовали ли вы Enumerable.Except
?
setB.Except(setA)
Пример:
HashSet<int> setB = new HashSet<int> { 1, 2, 3, 4, 5 };
HashSet<int> setA = new HashSet<int> { 1, 3, 5, 7 };
HashSet<int> result = new HashSet<int>(setB.Except(setA));
foreach (int x in result)
Console.WriteLine(x);
Результат:
2 4