Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
474 of 1492 menu
◀ ▶

Класс HashSet

Класс HashSet<T> из пространства имён System.Collections.Generic хранит элементы одного типа без повторов. Порядок обхода не гарантируется; сравнение и хеширование задаёт компаратор равенства. Коллекция реализует ISet<T> и подходит для проверки членства и операций над множествами.

Синтаксис

HashSet<T> set = new HashSet<T>(); HashSet<T> set = new HashSet<T>(collection);

Пример

Давайте создадим множество и добавим числа:

using System; using System.Collections.Generic; class Program { static void Main() { HashSet<int> nums = new HashSet<int>(); nums.Add(1); nums.Add(2); nums.Add(3); Console.WriteLine(nums.Count); } }

Результат выполнения кода:

3

Пример

Давайте повторно добавим уже существующий элемент:

using System; using System.Collections.Generic; class Program { static void Main() { HashSet<int> nums = new HashSet<int> {1, 2, 3}; bool added = nums.Add(2); Console.WriteLine(added); Console.WriteLine(nums.Count); } }

Результат выполнения кода:

False 3

Пример

Давайте заполним множество через инициализатор:

using System; using System.Collections.Generic; class Program { static void Main() { HashSet<int> nums = new HashSet<int> {1, 2, 3, 2, 1}; Console.WriteLine(nums.Count); Console.WriteLine(nums.Contains(3)); } }

Результат выполнения кода:

3 True

Смотрите также

  • метод Add,
    который добавляет элемент без дубликата
  • метод Contains,
    который проверяет наличие значения
  • класс SortedSet,
    который хранит элементы по возрастанию
  • интерфейс IReadOnlySet,
    который описывает множество только для чтения
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить