Выбор ответа Senior Коллекции и LINQ обновлено

FrozenDictionary в .NET 8

Вопрос

Когда имеет смысл FrozenDictionary<TKey, TValue>?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Для справочника, который строится при старте и только читается. FrozenDictionary (.NET 8) при создании анализирует ключи и выбирает оптимальную стратегию хеширования и сравнения, поэтому чтение быстрее, чем у Dictionary.

Варианты ответа

  1. Для справочника, который строится при старте и только читаетсяправильный ответ
  2. Для кеша с частыми записями из нескольких потоков без блокировок
  3. Когда нужен словарь, отсортированный по ключу для обхода по порядку
  4. Для экономии памяти при постоянных добавлениях и удалениях ключей

Разбор

FrozenDictionary (.NET 8) при создании анализирует ключи и выбирает оптимальную стратегию хеширования и сравнения, поэтому чтение быстрее, чем у Dictionary. Изменять его нельзя, а создание заметно дороже. Для конкурентной записи нужен ConcurrentDictionary, для сортировки SortedDictionary. Он неизменяемый, поэтому потокобезопасен для чтения без блокировок.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.