Множество (set) — это структура данных, представляющая собой не организованный набор уникальных элементов одного типа. Данная структура очень тесно связано с математическим понятием теории множеств. В наиболее упрощенном понимании, множество — это набор уникальных однотипных данных, рассматриваемых как единое целое. Давайте рассмотрим пример реализации множества и основных операций выполняемых с множествами на языке C#.
На рисунке ниже схематически представлены два множества A и B, а также основные операции: объединение, пересечение, разность.
Давайте подробнее рассмотрим все наиболее часто встречающиеся операции над множествами:
- Add — добавление элемента. Если такой элемент уже присутствует, то он не будет добавлен.
- Remove — удаление элемента из множества.
- Union — объединение множеств. Создается новое множество, включающее в себя все элементы из множества А и множества В. Если элемент содержится в обоих множествах, он будет добавлен однократно.
- Difference — разность множеств. Создается новое множество, включающее в себя все элементы множества А, которые не входят в множество В.
- Intersection — пересечение множеств. Создается новое множество, включающее в себя все элементы входящие одновременно и в множество А, и в множество В.
- Subset — проверка на подмножество. Чтобы быть подмножеством, все элементы множества А должны содержаться в множестве В. Тогда множество А является подмножеством множества В.
Детали конкретной реализации классов на языке C# можно изучить в более подробной статье по ссылке https://shwanoff.ru/set/ . Стоит заметить, что на платформе .NET все операции над множествами уже оптимально реализованы в рамках LINQ запросов, поэтому реализовывать самостоятельно нет необходимости. Поэтому данная статья направлена только на улучшение понимания принципа их работы.