Выполнять операции набора в C#
Класс HashSet может представлять объекты в наборе и выполнять операции с множеством, такие как поиск объединения или пересечения двух множеств.
Когда программа запускается, следующий код строит два набора и выполняет с ними некоторые операции.
// Создаем несколько наборов и выполняем на них операции.
private void Form1_Load(object sender, EventArgs e)
{
    HashSet owns_a_car = new HashSet();
    HashSet owns_a_bike = new HashSet();
    owns_a_bike.Add("Alice");
    owns_a_bike.Add("Bob");
    owns_a_bike.Add("Fred");
    owns_a_bike.Add("Dan");
    owns_a_car.Add("Cindy");
    owns_a_car.Add("Dan");
    owns_a_car.Add("Emma");
    owns_a_car.Add("Bob");
    owns_a_car.Add("Fred");
    txtOwnsABike.Text = string.Join(", ", owns_a_bike.ToArray());
    txtOwnsACar.Text = string.Join(", ", owns_a_car.ToArray());
    // Пересечение.
    HashSet owns_both = new HashSet(owns_a_car);
    owns_both.IntersectWith(owns_a_bike);
    txtOwnsBoth.Text = string.Join(", ", owns_both.ToArray());
    // Союз.
    HashSet owns_either = new HashSet(owns_a_car);
    owns_either.UnionWith(owns_a_bike);
    txtOwnsEither.Text = string.Join(", ", owns_either.ToArray());
    // Xor.
    HashSet owns_one = new HashSet(owns_a_car);
    owns_one.SymmetricExceptWith(owns_a_bike);
    txtOwnsOne.Text = string.Join(", ", owns_one.ToArray());
}          
Код создает два набора с именем owns_a_car и owns_a_bike и отображает их.
Затем программа создает копию owns_a_car, использует метод IntersectWith для поиска пересечения двух наборов и отображает результат (люди, которые владеют как автомобилями, так и велосипеды).
Программа создает другую копию owns_a_car, использует ее метод UnionWith, чтобы найти объединение двух наборов и отображает результат (люди, которые владеют либо автомобилями, либо велосипедами или оба).
Наконец, программа создает третью копию owns_a_car, использует метод SymmetricExceptWith для поиска элементов в одном наборе или другом, но не в обоих (Xor-I do not знаете, почему они не просто назвали этот метод Xor), и отображает результат (люди, которые владеют велосипедом или автомобилем, но не оба).

 
																							 
																							