Выполнять операции набора в 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), и отображает результат (люди, которые владеют велосипедом или автомобилем, но не оба).

Источник: http://csharphelper.com/blog/2015/03/perform-set-operations-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector