Часто новички в функциональном программировании думают, что сделали иммутабельный код. Берут список, вызывают
ToList() или Select() и радуются новому списку. Но в C# это ловушка.Проблема в ссылочных типах.
var copy = original.ToList() создаёт новый List, но все элементы внутри — те же самые объекты. Меняете свойство через copy, и оригинал тоже меняется. Правило трёх
• Records с init-only свойствами для value-like поведения
• ImmutableList<T> из System.Collections.Immutable — настоящие неизменяемые коллекции
• Struct только для маленьких типов
📍 Навигация: Вакансии • Задачи • Собесы
🐸Библиотека шарписта
#sharp_view