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