Класс ImmutableDictionary
Класс ImmutableDictionary<TKey, TValue>
из System.Collections.Immutable хранит
пары без изменения на месте. Любое добавление
или удаление создаёт новый экземпляр.
Синтаксис
ImmutableDictionary<TKey, TValue> map =
ImmutableDictionary<TKey, TValue>.Empty;
Пример
Давайте создать пустую таблицу и добавить пару:
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
class Program
{
static void Main()
{
ImmutableDictionary<int, string> map = ImmutableDictionary<int, string>.Empty;
ImmutableDictionary<int, string> map2 = map.Add(1, "a");
Console.WriteLine(map.IsEmpty);
Console.WriteLine(map2[1]);
}
}
Результат выполнения кода:
True
"a"
Пример
Давайте построить таблицу цепочкой Add:
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
class Program
{
static void Main()
{
ImmutableDictionary<int, string> map = ImmutableDictionary<int, string>.Empty
.Add(1, "a").Add(2, "b").Add(3, "c");
Console.WriteLine(map.Count);
}
}
Результат выполнения кода:
3
Пример
Давайте убедиться, что старая версия не меняется:
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
class Program
{
static void Main()
{
ImmutableDictionary<int, string> map = ImmutableDictionary<int, string>.Empty.Add(1, "a");
ImmutableDictionary<int, string> map2 = map.Add(2, "b");
Console.WriteLine(map.ContainsKey(2));
Console.WriteLine(map2.ContainsKey(2));
}
}
Результат выполнения кода:
False
True
Смотрите также
-
метод
Add,
который возвращает новую таблицу -
метод
ToImmutableDictionary,
который создаёт из последовательности -
класс
FrozenDictionary,
который оптимизирован для чтения -
класс
Dictionary,
который изменяется на месте