我試圖以最有效的方式從另一套拿走一套。所以如果我有以下集合A和B,那麼A_minus_B應該給出{1,2,6}。儘管我確信這不是最有效的方法,但我仍有這樣的想法。Set A minus Set B
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);
}
看看LINQ中的'Except'擴展方法。您可以從一個列表中選擇其他列表中不存在的所有項目。 –
你看過[ExceptWith](http://msdn.microsoft.com/en-us/library/bb299875.aspx) – tnw