Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
493 of 1492 menu
◀ ▶

Интерфейс 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,
    который не меняется после создания
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить