105 votes

liste en lecture seule ou liste non modifiable dans .NET 4.0

À partir de ce que je peux dire, .NET 4.0 manque encore readonly listes. Quelqu'un peut-il faire la lumière sur pourquoi le cadre manque encore de cette fonctionnalité? N'est-ce pas l'une des plus fréquentes des morceaux de fonctionnalités pour le domain driven design?

Un des rares avantages de Java a C# est-ce sous la forme de Collections.unmodifiablelist(liste) de la méthode, il semble depuis longtemps dans IList ou de la Liste.

Mise à jour

À l'aide de IEnumerable<T> est la solution la plus simple à la question - ToList peut être utilisé et renvoie une copie.

152voto

LukeH Points 110965

Vous recherchez ReadOnlyCollection , ce qui existe depuis .NET2.

 IList<string> foo = ...;
// ...
ReadOnlyCollection<string> bar = new ReadOnlyCollection<string>(foo);
 

ou

 List<string> foo = ...;
// ...
ReadOnlyCollection<string> bar = foo.AsReadOnly();
 

Cela crée une vue en lecture seule, ce qui reflète les modifications apportées à la collection enveloppée.

13voto

Jason Watts Points 916

Que diriez-vous de ReadOnlyCollection déjà dans le cadre?

11voto

Paul Betts Points 41354

Si le modèle le plus courant de la liste consiste à parcourir tous les éléments, IEnumerable ou IQueryable peut également servir de liste en lecture seule.

8voto

Paul Alexander Points 17611

En 2.0, vous pouvez appeler AsReadOnly pour obtenir une version en lecture seule de la liste. Ou encapsulez une IList existante dans un objet ReadOnlyCollection.

7voto

Matthew Dresser Points 4466

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X