Как сравнить 2 HashSet C#?
Есть 2 HashSet объекта:
HashSet<string> one = new HashSet<string>();
HashSet<string> two = new HashSet<string>();
// добавим для примера значения
one.Add("Hello");
two.Add("World");
// дальше я хочу проверить одинаковы ли значения в этой коллекции (значений в реальной коллекции больше 1000)
В общем говоря, алгоритм должен делать следующее: в коллекцию ```one``` записываем строки из dataGridView1, затем в коллекцию ```two``` записываем строки из другой таблицы dataGridView2, после эти коллекции сравниваю между собой и вывожу значение из коллекции ```One``` при условии ```One != Two```.
Ответы (2 шт):
Автор решения: tym32167
→ Ссылка
Чтобы получить все элементы из первого хешсета, которые отсутствуют во втором, можно использовать это
var result = one.Where(o=>two.Contains(o) == false).ToList();
Автор решения: VladD
→ Ссылка
Если вам нужна именно разность HashSet-ов, в качестве альтернативного решения можно воспользоваться либо встроенной функцией ExceptWith:
one.ExceptWith(two);
(она не возвращает в ответ новое множество, а убирает из one те элементы, которые есть в two, но вам, кажется, такое и надо)
либо LINQ-функцией Except:
var diff = one.Except(two).ToList();
Если же вам нужно действительно лишь проверить множества на равенство между собой, достаточно использовать функцию SetEquals:
bool isEqual = one.SetEquals(two);