Построение frozen-коллекции в C#
Метод ToFrozenDictionary принимает готовые пары и строит словарь только для чтения. Сравнение ключей задают так же, как у обычного словаря. В примере регистр букв не учитывается.
Построение дорогое и выполняется обычно один раз при старте приложения. Дальше коллекцию только читают.
Заморозим карту, для которой регистр ключа не важен. Ключ "X" находится, хотя в парах записан "x". При обычном сравнении это были бы разные ключи:
using System.Collections.Frozen;
var pairs = new[] { KeyValuePair.Create("x", 1), KeyValuePair.Create("y", 2) };
FrozenDictionary<string, int> map = pairs.ToFrozenDictionary(StringComparer.OrdinalIgnoreCase);
Console.WriteLine(map.ContainsKey("X")); // выведет True
Соберите замороженный словарь без учёта регистра ключей: ключ "red" со значением 1 и ключ "blue" со значением 2. Проверьте, есть ли ключ "RED".