Types de collections couramment utilisés
Mise à jour : novembre 2007
Les types de collection sont les variations communes des collections de données, telles que les tables de hachage, les files d'attente, les piles, les dictionnaires et les listes.
Les collections prennent comme base l'interface ICollection, l'interface IList, l'interface IDictionary ou leurs équivalents génériques. L'interface IList et l'interface IDictionary sont toutes deux dérivées de l'interface ICollection ; par conséquent, toutes les collections s'appuient sur l'interface ICollection (directement ou indirectement). Dans les collections qui s'appuient sur l'interface IList (comme par exemple Array, ArrayList ou List<T>) ou directement sur l'interface ICollection (comme par exemple Queue, Stack ou LinkedList<T>), chaque élément contient une valeur uniquement. Dans les collections reposant sur l'interface IDictionary (telles que les classes Hashtable et SortedList, ou les classes génériques Dictionary<TKey, TValue> et SortedList<TKey, TValue>), chaque élément contient à la fois une clé et une valeur. La classe KeyedCollection<TKey, TItem> est unique parce qu'il s'agit d'une liste de valeurs avec clés incorporées dans les valeurs ; par conséquent, elle se comporte comme une liste et comme un dictionnaire.
Les collections génériques représentent la meilleure solution pour les classes fortement typées. Toutefois, si votre langage ne prend pas en charge les classes génériques, l'espace de noms System.Collections contient des collections de base, telles que CollectionBase, ReadOnlyCollectionBase et DictionaryBase, qui représentent des classes de base abstraites pouvant être étendues dans le but de créer des classes de collection fortement typées.
Les collections peuvent varier selon le mode de stockage des éléments, leur mode de tri, la manière dont les recherches sont effectuées et la façon dont les comparaisons sont établies. La classe Queue et la classe générique Queue<T> fournissent des listes de type premier entré premier sorti, alors que la classe Stack et la classe générique Stack<T> fournissent des listes de type dernier entré premier sorti. La classe SortedList et la classe générique SortedList<TKey, TValue> fournissent des versions triées de la classe Hashtable et de la classe générique Dictionary<TKey, TValue>. Dans Hashtable ou Dictionary<TKey, TValue>, les éléments sont accessibles uniquement par la clé de l'élément, alors que dans SortedList ou KeyedCollection<TKey, TItem>, les éléments sont accessibles par la clé ou par l'index de l'élément. Dans toutes les collections, les index sont des index de base zéro, sauf Array qui autorise des tableaux qui ne sont pas de base zéro.
La fonctionnalité LINQ to Objects permet d'utiliser des requêtes LINQ pour accéder aux objets en mémoire tant que le type d'objet implémente IEnumerable ou IEnumerable<T>. Les requêtes LINQ fournissent un modèle commun pour accéder aux données, sont généralement plus concises et lisibles que les boucles foreach standard et intègrent des fonctions de filtrage, de classement et de regroupement. Les requêtes LINQ peuvent également améliorer les performances. Pour plus d'informations, consultez LINQ to Objects.
Dans cette section
Type collection Array
Décrit les fonctionnalités des tableaux qui leur permettent d'être traités comme des collections.Types collection ArrayList et List
Décrit les fonctionnalités des listes génériques et non génériques, qui constituent les types de collection les plus fréquemment utilisés.Types collection Hashtable et Dictionary
Décrit les fonctionnalités des types de dictionnaires génériques et non génériques basés sur le hachage.Types collection SortedList et SortedDictionary
Décrit les types de dictionnaire trié et les types hybrides qui associent les fonctionnalités d'un dictionnaire à celles d'une liste.Types collection Queue
Décrit les fonctionnalités des files d'attente génériques et non génériques.Types collection Stack
Décrit les fonctionnalités des piles génériques et non génériques.HashSet, type collection
Décrit le type de collection HashSet<T> générique.HashSet et LINQ, opérations ensemblistes
Décrit les opérations ensemblistes fournies par le type de collection HashSet<T> et les opérations ensemblistes LINQ.
Référence
System.Collections
Fournit une documentation de référence à l'espace de noms System.Collections qui contient des interfaces et des classes qui définissent différentes collections d'objets.System.Collections.Generic
Fournit une documentation de référence à l'espace de noms System.Collections.Generic qui contient des interfaces et des classes qui définissent des collections génériques.System.Collections.ICollection
Décrit les principales fonctionnalités de la classe ICollection qui définit la taille, les énumérateurs et les méthodes de synchronisation de toutes les collections non génériques.System.Collections.Generic.ICollection<T>
Décrit les principales fonctionnalités de la classe ICollection<T> qui définit des méthodes pour manipuler les collections génériques.System.Collections.IList
Décrit les principales fonctionnalités de la classe IList qui représente une collection non générique d'objets auxquels il est possible d'accéder individuellement par index.System.Collections.Generic.IList<T>
Décrit les principales fonctionnalités de la classe IList<T> qui représente une collection d'objets auxquels il est possible d'accéder individuellement par index.System.Collections.IDictionary
Décrit les principales fonctionnalités de la classe IDictionary qui représente une collection non générique de paires clé/valeur.System.Collections.Generic.IDictionary<TKey, TValue>
Décrit les principales fonctionnalités de la classe IDictionary<TKey, TValue> qui représente une collection générique de paires clé/valeur.
Rubriques connexes
Collections et structures de données
Présente les différents types de collection disponibles dans le .NET Framework, notamment les piles, les files d'attente, les listes, les tableaux et les structures.Génériques dans le .NET Framework
Décrit la fonctionnalité des génériques, et notamment les collections, les délégués et les interfaces génériques fournis par le .NET Framework. Fournit des liens vers la documentation relative aux fonctionnalités de C#, Visual Basic et Visual C++, et aux technologies de prise en charge, telles que la réflexion.