Интерфейс IReadOnlySet
Интерфейс IReadOnlySet<T>
расширяет
IReadOnlyCollection<T>
методом Contains
и операциями сравнения множеств без изменения
данных. Его реализуют
HashSet<T>,
FrozenSet<T>
и другие типы.
Синтаксис
IReadOnlySet<T> view = set;
Пример
Давайте передать HashSet<T>
как только для чтения:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
HashSet<int> nums = new HashSet<int> {1, 2, 3, 4, 5};
IReadOnlySet<int> view = nums;
Console.WriteLine(view.Contains(3));
}
}
Результат выполнения кода:
True
Пример
Давайте прочитать Count
через интерфейс:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
HashSet<string> items = new HashSet<string> {"a", "b", "c"};
IReadOnlySet<string> view = items;
Console.WriteLine(view.Count);
}
}
Результат выполнения кода:
3
Пример
Давайте проверить IsSupersetOf
без изменения исходного множества:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
HashSet<int> big = new HashSet<int> {1, 2, 3, 4, 5};
IReadOnlySet<int> view = big;
int[] small = {2, 4};
Console.WriteLine(view.IsSupersetOf(small));
Console.WriteLine(big.Count);
}
}
Результат выполнения кода:
True
5
Смотрите также
-
интерфейс
ISet,
который позволяет менять множество -
класс
FrozenSet,
который только для чтения -
интерфейс
IReadOnlyCollection,
от которого наследует IReadOnlySet -
класс
ImmutableHashSet,
который не меняется после создания