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

Интерфейс IReadOnlyDictionary

Интерфейс IReadOnlyDictionary<TKey, TValue> даёт чтение по ключу, Count, Keys, Values, ContainsKey и TryGetValue без методов добавления и удаления.

Синтаксис

IReadOnlyDictionary<TKey, TValue> view = map;

Пример

Давайте присвоить Dictionary переменной интерфейса:

using System; using System.Collections.Generic; class Program { static void Main() { Dictionary<int, string> map = new Dictionary<int, string> { {1, "a"}, {2, "b"} }; IReadOnlyDictionary<int, string> view = map; Console.WriteLine(view[1]); } }

Результат выполнения кода:

"a"

Пример

Давайте прочитать Count через интерфейс:

using System; using System.Collections.Generic; class Program { static void Main() { Dictionary<int, string> map = new Dictionary<int, string> { {1, "a"}, {2, "b"}, {3, "c"}, {4, "d"}, {5, "e"} }; IReadOnlyDictionary<int, string> view = map; Console.WriteLine(view.Count); } }

Результат выполнения кода:

5

Пример

Давайте увидеть изменение исходной таблицы:

using System; using System.Collections.Generic; class Program { static void Main() { Dictionary<int, string> map = new Dictionary<int, string> { {1, "a"} }; IReadOnlyDictionary<int, string> view = map; map[1] = "x"; Console.WriteLine(view[1]); } }

Результат выполнения кода:

"x"

Смотрите также

  • интерфейс IDictionary,
    который разрешает изменение
  • класс ReadOnlyDictionary,
    который реализует IReadOnlyDictionary
  • класс FrozenDictionary,
    который тоже только для чтения
  • интерфейс IReadOnlyCollection,
    который даёт Count без индексатора
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить