有两种简单方法可以获得两组relative complement吗?也许使用LINQ?
我必须找到集合A相对于B的相对称赞.A和B都是HashSet<T>
类型,但我认为算法可以更通用(IEnumerable<T>
甚至{{ 1}})?
我可以在VB.NET或C#中使用解决方案。
答案 0 :(得分:27)
您是否尝试过 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