Тип коллекции 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) |
Математический эквивалент |
---|---|
Объединение или сложение множеств |
|
Пересечение |
|
Вычитание множеств |
|
Строгая дизъюнкция |
Помимо перечисленных операций над множествами, класс HashSet<T> также предоставляет методы для определения равенства множеств, перекрытия множеств и является ли множество подмножеством или наоборот.