Поделиться через


Тип коллекции HashSet

Класс HashSet<T> является коллекцией множества, которая реализует интерфейс ICollection и универсальный интерфейс ICollection<T>.

Начиная с .NET Framework 4, класс HashSet<T> реализует класс ISet<T>.

Коллекции множества

В математике множество представляет собой коллекцию различных объектов, которая обычно определяется правилом, определяющим, является ли элемент членом определенного множества. Например, множество может быть определено таким образом, чтобы содержать "все нечетные числа в диапазоне от 1 до 21" или числа "1, 3, 5 и 7".

Класс HashSet

Класс HashSet<T> основан на модели математических множеств и позволяет проводить высокопроизводительные операции над множествами, подобные доступу к ключам в Dictionary<TKey, TValue> или Hashtable. Проще говоря, класс HashSet<T> можно рассматривать как коллекцию Dictionary<TKey, TValue>, но без значений.

Коллекция HashSet<T> не сортируется и не может содержать повторяющихся элементов. Если упорядочивание или дублирование элементов является более важным, чем производительность приложения, то следует рассмотреть использование класса List<T> вместе с методом Sort.

Класс HashSet<T> позволяет осуществлять многие математические операции над множествами, такие как сложение (объединение) и вычитание множеств. В следующей таблице перечислены возможные операции HashSet<T> и их математические эквиваленты.

Операция HashSet(Of T)

Математический эквивалент

UnionWith

Объединение или сложение множеств

IntersectWith

Пересечение

ExceptWith

Вычитание множеств

SymmetricExceptWith

Строгая дизъюнкция

Помимо перечисленных операций над множествами, класс HashSet<T> также предоставляет методы для определения равенства множеств, перекрытия множеств и является ли множество подмножеством или наоборот.

См. также

Ссылки

SortedSet<T>

ISet<T>

HashSet<T>

Основные понятия

Операции над множествами в HashSet и LINQ

Другие ресурсы

Часто используемые типы коллекций