Как сравнить 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);
→ Ссылка