Метод ToFrozenSet
Метод расширения ToFrozenSet
(пространство имён System.Collections.Frozen)
строит FrozenSet<T>
из IEnumerable<T>. Повторяющиеся
значения схлопываются; результат только
для чтения и не меняется после создания.
Синтаксис
FrozenSet<T> set = source.ToFrozenSet();
Пример
Давайте заморозить список чисел:
using System;
using System.Collections.Frozen;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> src = new List<int> {1, 2, 3, 2, 1};
FrozenSet<int> nums = src.ToFrozenSet();
src.Add(4);
Console.WriteLine(nums.Count);
Console.WriteLine(nums.Contains(4));
}
}
Результат выполнения кода:
3
False
Пример
Давайте построить множество из
HashSet<T>:
using System;
using System.Collections.Frozen;
using System.Collections.Generic;
class Program
{
static void Main()
{
HashSet<string> src = new HashSet<string> {"a", "b", "c"};
FrozenSet<string> items = src.ToFrozenSet();
Console.WriteLine(items.Contains("c"));
Console.WriteLine(items.Count);
}
}
Результат выполнения кода:
True
3
Пример
Давайте передать компаратор при заморозке:
using System;
using System.Collections.Frozen;
class Program
{
static void Main()
{
string[] arr = {"a", "A", "b"};
FrozenSet<string> items = arr.ToFrozenSet(
StringComparer.OrdinalIgnoreCase);
Console.WriteLine(items.Count);
Console.WriteLine(items.Contains("A"));
}
}
Результат выполнения кода:
2
True
Смотрите также
-
метод
ToImmutableHashSet,
который строит ImmutableHashSet -
метод
Contains,
который ищет элемент в FrozenSet -
класс
FrozenSet,
который возвращает метод -
класс
FrozenDictionary,
который замораживает словарь