Класс 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,
который описывает множество только для чтения