Partager via


Types de collections couramment utilisés

Les types de collections sont les variations communes des collections de données, telles que les tables de hachage, les files d'attente, les piles, les conteneurs, 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. Les interfaces IList et IDictionary sont toutes deux dérivées de l'interface ICollection ; par conséquent, toutes les collections sont basées sur l'interface ICollection, directement ou indirectement. Dans les collections basées sur l'interface IList (telles que Array, ArrayList ou List<T>) ou directement sur l'interface ICollection (telles que Queue, ConcurrentQueue<T>, Stack, ConcurrentStack<T> ou LinkedList<T>), chaque élément contient uniquement une valeur. Dans les collections basées sur l'interface IDictionary (telles que les classes Hashtable et SortedList, et les classes génériques Dictionary<TKey, TValue> et SortedList<TKey, TValue>), ou les classes ConcurrentDictionary<TKey, TValue>, chaque élément contient 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. Lorsqu'un accès efficace à une collection multithread est requis, utilisez les collections génériques dans l'espace de noms System.Collections.Concurrent.

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 et Parallel LINQ (PLINQ).

Rubriques connexes

Titre

Description

Type de collection Array

Décrit les fonctionnalités des tableaux qui leur permettent d'être traités comme des collections.

Types de collections 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 de collections triées

Décrit les classes qui fournissent des fonctionnalités de tri pour les listes et les jeux.

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 System.Collections.Generic.HashSet<T> générique.

HashSet et LINQ, opérations ensemblistes

Décrit les opérations ensemblistes fournies par le type de collection System.Collections.Generic.HashSet<T> et les opérations ensemblistes LINQ.

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.

Référence

System.Collections

System.Collections.Generic

System.Collections.ICollection

System.Collections.Generic.ICollection<T>

System.Collections.IList

System.Collections.Generic.IList<T>

System.Collections.IDictionary

System.Collections.Generic.IDictionary<TKey, TValue>