Новая версия после изменения в C#
Неизменяемая коллекция не переписывает себя. Операция Add создаёт новую версию, а старая остаётся у того, кто сохранил прежнюю ссылку.
Длину старой и новой версии легко сравнить. Если старая длина не выросла, правка осталась только в новой версии.
Добавим элемент и сравним длины a и b. Список a не изменился после Add. Если передать a другому коду, тот не увидит второй элемент:
using System.Collections.Immutable;
ImmutableList<int> a = ImmutableList.Create(1);
ImmutableList<int> b = a.Add(2);
Console.WriteLine(a.Count); // выведет 1
Console.WriteLine(b.Count); // выведет 2
Соберите неизменяемый список из чисел 4 и 7, добавьте 9 и выведите длину исходного списка и нового.