我正在尝试以最有效的方式从另一组中取走一组。因此,如果我有下面的集合A和B,那么A_minus_B应该给出{1,2,6}。这就是我所拥有的,尽管我确信这不是最有效的方法。
HashSet<int> A = new HashSet<int>{ 1, 2, 3, 4, 5, 6 };
HashSet<int> B = new HashSet<int> { 3, 4, 5 };
HashSet<int> A_minus_B = new HashSet<int>(A);
foreach(int n in A){
if(B.Contains(n)) A_minus_B.Remove(n);
}发布于 2013-04-18 02:08:18
您可以使用Except()方法。代码如下:
HashSet<int> A_minus_B = new HashSet<int>(A.Except(B)); 发布于 2013-04-18 02:09:56
使用以下命令:
var setA= new HashSet<int>();
var setB= new HashSet<int>();
...
var remaining = new HashSet<int>(setA);
remaining.ExceptWith(setB);remaining是您的新过滤集合。
发布于 2013-04-18 02:09:10
您可以使用ExceptWith,它将通过删除B中的项来修改A
A.ExceptWith(B);您也可以使用Except,它将返回新的set;
https://stackoverflow.com/questions/16067072
复制相似问题