Класс FrozenSet
Класс FrozenSet<T> из пространства имён
System.Collections.Frozen представляет
множество только для чтения с быстрым
Contains.
Создаётся через
ToFrozenSet;
после построения состав не меняется.
Реализует
IReadOnlySet<T>.
Синтаксис
FrozenSet<T> set = source.ToFrozenSet();
Пример
Давайте построить замороженное множество из массива:
using System;
using System.Collections.Frozen;
class Program
{
static void Main()
{
int[] arr = {1, 2, 3, 4, 5};
FrozenSet<int> nums = arr.ToFrozenSet();
Console.WriteLine(nums.Count);
Console.WriteLine(nums.Contains(3));
}
}
Результат выполнения кода:
5
True
Пример
Давайте убрать дубликаты при заморозке:
using System;
using System.Collections.Frozen;
class Program
{
static void Main()
{
int[] arr = {1, 2, 2, 3};
FrozenSet<int> nums = arr.ToFrozenSet();
Console.WriteLine(nums.Count);
}
}
Результат выполнения кода:
3
Пример
Давайте передать FrozenSet<T>
как IReadOnlySet<T>:
using System;
using System.Collections.Frozen;
using System.Collections.Generic;
class Program
{
static void Main()
{
FrozenSet<string> frozen =
new[] {"a", "b", "c"}.ToFrozenSet();
IReadOnlySet<string> view = frozen;
Console.WriteLine(view.Contains("b"));
}
}
Результат выполнения кода:
True
Смотрите также
-
метод
ToFrozenSet,
который создаёт FrozenSet из коллекции -
метод
Contains,
который проверяет элемент -
класс
ImmutableHashSet,
который тоже неизменяем -
класс
HashSet,
который можно менять до заморозки