Выбор ответа Senior Коллекции и LINQ обновлено
FrozenDictionary в .NET 8
Вопрос
Когда имеет смысл FrozenDictionary<TKey, TValue>?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Для справочника, который строится при старте и только читается. FrozenDictionary (.NET 8) при создании анализирует ключи и выбирает оптимальную стратегию хеширования и сравнения, поэтому чтение быстрее, чем у Dictionary.
Варианты ответа
- Для справочника, который строится при старте и только читаетсяправильный ответ
- Для кеша с частыми записями из нескольких потоков без блокировок
- Когда нужен словарь, отсортированный по ключу для обхода по порядку
- Для экономии памяти при постоянных добавлениях и удалениях ключей
Разбор
FrozenDictionary (.NET 8) при создании анализирует ключи и выбирает оптимальную стратегию хеширования и сравнения, поэтому чтение быстрее, чем у Dictionary. Изменять его нельзя, а создание заметно дороже. Для конкурентной записи нужен ConcurrentDictionary, для сортировки SortedDictionary. Он неизменяемый, поэтому потокобезопасен для чтения без блокировок.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.