Построитель неизменяемого списка в C#
Построитель - изменяемый буфер. В него несколько раз добавляют элементы, а ToImmutable один раз фиксирует снимок. Так не появляется промежуточный ImmutableList на каждом шаге.
После ToImmutable builder можно продолжать наполнять для другого снимка, но уже зафиксированная коллекция не меняется.
Соберём две строки и прочитаем первую в снимке. Добавление "z" в построитель после снимка не меняет его длину:
using System.Collections.Immutable;
var builder = ImmutableList.CreateBuilder<string>();
builder.Add("x");
builder.Add("y");
ImmutableList<string> snapshot = builder.ToImmutable();
builder.Add("z");
Console.WriteLine(snapshot[0]); // выведет "x"
Console.WriteLine(snapshot.Count); // выведет 2
Соберите через построитель неизменяемый список из строк "north" и "east" и выведите последний элемент снимка.