.NET Framework Créer un ReadOnlyCollection


Exemple

Utiliser le constructeur

Un ReadOnlyCollection est créé en transmettant un objet IList existant au constructeur:

var groceryList = new List<string> { "Apple", "Banana" };
var readOnlyGroceryList = new ReadOnlyCollection<string>(groceryList);

Utiliser LINQ

De plus, LINQ fournit une méthode d'extension AsReadOnly() pour les objets IList :

var readOnlyVersion = groceryList.AsReadOnly();

Remarque

En règle générale, vous souhaitez conserver la collection source en privé et autoriser un accès public à ReadOnlyCollection . Bien que vous puissiez créer un ReadOnlyCollection partir d'une liste en ligne, vous ne pourrez pas modifier la collection après l'avoir créée.

var readOnlyGroceryList = new List<string> {"Apple", "Banana"}.AsReadOnly();
// Great, but you will not be able to update the grocery list because 
//  you do not have a reference to the source list anymore!

Si vous le faites, vous pouvez envisager d'utiliser une autre structure de données, telle qu'une ImmutableCollection .