FrozenDictionary в C#
Обычный словарь один раз превращают в FrozenDictionary. После этого пару уже не добавить: значение только читают по ключу.
Добавление и удаление недоступны - для изменений собирают новый словарь и снова вызывают ToFrozenDictionary.
Заморозим черновик и изменим в нём значение по ключу "a". Замороженная карта хранит свою копию, поэтому чтение по-прежнему даёт 1:
using System.Collections.Frozen;
Dictionary<string, int> draft = new() { ["a"] = 1, ["b"] = 2 };
FrozenDictionary<string, int> map = draft.ToFrozenDictionary();
draft["a"] = 9;
Console.WriteLine(map["a"]); // выведет 1
Соберите словарь с ключом "oslo" и значением 47, заморозьте его, запишите в черновик 0 и выведите значение из замороженной карты.