Il est généralement recommandé d'utiliser des collections génériques dans la mesure où vous pouvez bénéficier directement de la sécurité de type sans devoir dériver d'un type collection de base et implémenter des membres spécifiques au type. De plus, les performances des types collection génériques sont souvent supérieures à celles des types collection non génériques correspondants (et à celles des types dérivés de types collection de base non génériques) lorsque les éléments de la collection sont des types valeur. En effet, les conversions boxing des éléments sont inutiles avec les génériques.
Les types génériques suivants correspondent à des types collection existants :
-
Dictionary est la classe générique correspondant à Hashtable.
-
Collection est la classe générique correspondant à CollectionBase. Collection peut être utilisée comme classe de base mais, à la différence de la classe CollectionBase, elle n'est pas abstraite, ce qui la rend plus facile à utiliser.
-
ReadOnlyCollection est la classe générique correspondant à ReadOnlyCollectionBase. ReadOnlyCollection n'est pas abstraite et possède un constructeur qui permet d'exposer facilement une collection List existante en tant que collection en lecture seule.
-
Les classes génériques Queue, Stack et SortedList correspondent aux classes non génériques du même nom.
Types supplémentaires
Plusieurs types collection génériques n'ont pas d'équivalents non génériques :
-
LinkedList est une liste liée à usage général qui fournit des opérations de suppression et d'insertion O(1).
-
SortedDictionary est un dictionnaire trié avec des opérations de récupération et d'insertion O(log n) et représente une alternative utile à SortedList.
-
KeyedCollection est une collection hybride entre une liste et un dictionnaire, qui permet de stocker des objets contenant leurs propres clés.
Fonctionnalités supplémentaires
Certains types génériques possèdent des fonctionnalités dont les types collection non génériques sont dépourvus. Par exemple, la classe List, qui correspond à la classe ArrayList non générique, possède plusieurs méthodes acceptant des délégués génériques, notamment le délégué Predicate qui vous permet de spécifier des méthodes pour effectuer des recherches dans la liste, le délégué Action qui représente des méthodes agissant sur chaque élément de la liste et le délégué Converter qui vous permet de définir des conversions entre types.
La classe List vous permet de spécifier vos propres implémentations de l'interface générique IComparer pour trier et effectuer une recherche dans la liste. Les classes SortedDictionary et SortedList offrent également cette fonctionnalité et permettent, en outre, de spécifier des comparateurs lors de la création de la collection. De la même façon, les classes Dictionary et KeyedCollection vous permettent de spécifier vos propres comparateurs d'égalité.
Outils (masquer)
S'enregistrer
Liste des Membres
Qui est en ligne?
FAQ