FrozenDictionary für Nachschlagetabellen
- Matt
Eine Zuordnungstabelle, die beim Start gefüllt und danach millionenfach gelesen wird:
private static readonly FrozenDictionary<string, Waehrung> Waehrungen =
LadeWaehrungen().ToFrozenDictionary(StringComparer.OrdinalIgnoreCase);
Das Einfrieren kostet einmalig mehr Zeit als ein normales Dictionary, weil intern eine auf die konkreten Schlüssel zugeschnittene Struktur gebaut wird. Danach ist das Nachschlagen schneller.
Die Bedingung steht im Namen: eingefroren. Wer nach dem Erzeugen noch etwas einfügen will, ist hier falsch. Für Konfigurationstabellen, Zuordnungen und Nachschlagelisten trifft das aber fast immer zu.
Es gibt auch FrozenSet für denselben Fall ohne Werte.