Призначення класу HashSet — колекція для зберігання множини значень.
Загальне уявлення про клас HashSet можна отримати, переглянувши код програми та проаналізувавши її виведенням для словника, у якому і ключі, і значення мають тип string.
У поданому далі описі:
Місткість об'єкта HashSet — це кількість елементів, які об'єкт може містити. Місткість об'єкта автоматично збільшується при додаванні елементів до об'єкта.
Клас HashSet, заснований на моделі математичних множин, надає високопродуктивні операції, аналогічні доступу до ключів колекцій Dictionary. Клас HashSet можна тлумачити як колекцію Dictionary без значень.
Колекцію HashSet не упорядковано. Вона не може містити значення, що повторюються. Якщо порядок або дублювання елементів для програми важливіше за продуктивність, використовують List разом з методом Sort.
Лише для платформи .NET Framework. Для великих об'єктів можна збільшити максимальну ємність до 2 мільярдів елементів у 64-розрядній системі, задавши атрибуту enabled елемента конфігурації gcAllowVeryLargeObjects значення true в середовищі середовища виконання.
HashSet<T>() — ініціалізує порожній представник, який використовує функцію порівняння як усталено.
HashSet<T>(IEnumerable<T>) — ініціалізує представник з функцією порівняння як усталено, містить елементи, скопійовані із вказаної колекції, і має ємність, достатню для того, щоб вмістити кількість скопійованих елементів.
HashSet<T>(IEnumerable<T>, IEqualityComparer<T>) — ініціалізує представник класу, який використовує задану функцію порівняння, містить елементи, скопійовані із вказаної колекції, і має ємність, достатню для того, щоб вмістити кількість скопійованих елементів.
HashSet<T>(IEqualityComparer<T>) — ініціалізує порожній екземпляр класу, який використовує вказану функцію порівняння.
HashSet<T>(Int32) — ініціалізує порожній екземпляр класу, резервує простір для вказаної кількості елементів і використовує функцію порівняння як усталено.
HashSet<T>(Int32, IEqualityComparer<T>) — ініціалізує представник, який використовує задану функцію порівняння і має достатню ємність для розміщення вказаної кількості елементів.
HashSet<T>(SerializationInfo, StreamingContext) — ініціалізує новий екземпляр класу з серіалізованими даними.
Властивості
Додаткові дані про явні втілення інтерфейсу, методи розширення потокобезпечність подано на сторінці сайту learn.microsoft.com.