Интерфейс 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 без индексатора