Я стараюсь забрать один набор из другого самым эффективным способом. Поэтому, если у меня есть следующие множества A и B, тогда A_minus_B должен дать {1, 2, 6}. Вот что я имею, хотя я уверен, что это не самый эффективный способ.Set A минус 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);
}
Посмотрите на метод расширения Except в LINQ. Вы можете выбрать все элементы из одного списка, где они не существуют в другом списке. –
Вы просмотрели [ExceptWith] (http://msdn.microsoft.com/en-us/library/bb299875.aspx) – tnw