Les collections immuables

Important

Cette rubrique a été mise à jour. Son contenu se trouve désormais dans l'article Collections immuables.

Maintenir un état mutable sous contrôle quand plusieurs threads sont impliqués peut être difficile. Une approche courante consiste à utiliser un état immuable pouvant être transmis librement entre différents threads. Les collections immuables diffèrent des collections en lecture seule en ce sens qu'elles ne peuvent pas être modifiées par le fournisseur ou le consommateur de la collection. Par exemple, si vous énumérez une collection en lecture seule, celle-ci risque d'être modifiée sur un autre thread, entraînant une altération des données. Ce scénario ne peut pas se produire si vous utilisez une collection immuable.

Grâce aux collections immuables, vous pouvez :

  • partager une collection en garantissant à son consommateur qu'elle ne changera jamais ;

  • fournir une sécurité des threads implicite dans les applications multithread (aucun verrou requis pour accéder aux collections) ;

  • suivre des pratiques de programmation fonctionnelles ;

  • modifier une collection pendant l'énumération, sans que la collection d'origine change.

Les classes de collection immuable sont prises en charge à partir de .NET Framework 4.5. Utilisez-les pour générer des applications ciblant le Bureau, le Windows Store, la Bibliothèque de classes portable et Windows Phone 8.

Pour installer les collections immuables

Les classes immuables ne font pas partie de la principale bibliothèque de classes distribuée avec .NET Framework ; elles sont disponibles via NuGet. Pour installer ces classes :

  1. Ouvrez votre projet dans Visual Studio, puis choisissez Gérer les packages NuGet dans le menu Projet.

  2. Dans le volet gauche, cliquez sur En ligne.

  3. Éventuellement, dans la zone de liste déroulante du volet central, sélectionnez l'option Inclure la version préliminaire au lieu de Stable uniquement. Cette option vous donne accès aux nouvelles versions préliminaires des classes immuables dès qu'elles sont disponibles. (Pour utiliser ImmutableArray, vous devez choisir Inclure la version préliminaire.)

  4. Dans le volet droit, utilisez la zone Rechercher pour localiser le package Microsoft.Immutable.Collections (Microsoft.Bcl.Immutable).

  5. Dans le volet central, sélectionnez Microsoft Immutable Collections, puis choisissez Installer.

Classes immuables

L'espace de noms System.Collections.Immutable fournit des types de collection immuable génériques que vous pouvez utiliser pour ces scénarios, notamment :

  • ImmutableArray (version préliminaire)

  • ImmutableDictionary

  • ImmutableSortedDictionary

  • ImmutableHashSet

  • ImmutableList

  • ImmutableQueue

  • ImmutableSortedSet

  • ImmutableStack

L'espace de noms contient également de nombreuses classes de prise en charge. Par exemple, à chaque type de collection immuable est généralement associé un type de générateur qui vous permet de créer et de manipuler facilement et efficacement une collection avant de la rendre immuable. Pour obtenir la liste complète des types et des liens vers du contenu de référence, consultez l'espace de noms System.Collections.Immutable.

Voir aussi

Concepts

Collections génériques dans le .NET Framework

Autres ressources

Collections et structures de données