Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpImCh 116 of 509 menu
◀ ▶

Выбор между обычной, immutable и frozen в C#

Классы List и Dictionary удобны, пока данные накапливаются в одном месте. Immutable-коллекции возвращают новую версию при изменении - ими делятся между компонентами, не опасаясь скрытой записи.

Типы FrozenDictionary и FrozenSet строят один раз и дальше не правят. Ими удобно держать справочник, который задают при старте и потом только читают, например коды ошибок.

Снимем неизменяемую копию из обычного списка. Копия не увидела добавление 99 в исходный список:

using System.Collections.Immutable; List<int> mutable = new() { 1 }; ImmutableList<int> imm = mutable.ToImmutableList(); mutable.Add(99); Console.WriteLine(imm[0]); // выведет 1 Console.WriteLine(imm.Count); // выведет 1

Опишите, какую неизменяемую коллекцию вы бы взяли для конфигурации на старте приложения.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить