C# Language Collections immuables


Exemple

Le package System.Collections.Immutable NuGet fournit des classes de collection immuables.

Créer et ajouter des éléments

var stack = ImmutableStack.Create<int>();
var stack2 = stack.Push(1); // stack is still empty, stack2 contains 1
var stack3 = stack.Push(2); // stack2 still contains only one, stack3 has 2, 1

Création à l'aide du constructeur

Certaines collections immuables ont une classe interne Builder qui peut être utilisée pour créer à moindre coût de grandes instances immuables:

var builder = ImmutableList.CreateBuilder<int>(); // returns ImmutableList.Builder
builder.Add(1);
builder.Add(2);
var list = builder.ToImmutable();

Créer à partir d'un IEnumerable existant

var numbers = Enumerable.Range(1, 5);
var list = ImmutableList.CreateRange<int>(numbers);

Liste de tous les types de collection immuables: