Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Les types de collection représentent différentes façons de collecter des données, telles que des tables de hachage, des files d’attente, des piles, des sacs, des dictionnaires et des listes.
Toutes les collections sont basées soit directement, soit indirectement sur les interfaces ICollection ou ICollection<T>. IList et IDictionary leurs équivalents génériques dérivent tous de ces deux interfaces.
Dans les collections basées ou directement sur IListICollection, chaque élément contient uniquement une valeur. Ces types sont les suivants :
Dans les collections basées sur l’interface IDictionary, chaque élément contient à la fois une clé et une valeur. Ces types sont les suivants :
- Hashtable
- SortedList
- SortedList<TKey,TValue>
- Dictionary<TKey,TValue>
- ConcurrentDictionary<TKey,TValue>
La KeyedCollection<TKey,TItem> classe est unique, car il s’agit d’une liste de valeurs avec des clés incorporées dans les valeurs. Par conséquent, il se comporte à la fois comme une liste et comme un dictionnaire.
Lorsque vous avez besoin d’un accès efficace aux collections multi-thread, utilisez les collections génériques dans l’espace de noms System.Collections.Concurrent.
Les classes Queue et Queue<T> fournissent des listes premier entré, premier sorti. Les classes Stack et Stack<T> fournissent des listes de type dernier entré, premier sorti.
Typage fort
Les collections génériques conviennent le mieux au typage fort. Par exemple, l’ajout d’un élément de tout type autre qu’une Int32List<Int32> collection provoque une erreur au moment de la compilation. Toutefois, si votre langage ne prend pas en charge les génériques, l’espace System.Collections de noms inclut des classes de base abstraites que vous pouvez étendre pour créer des classes de collection fortement typées. Ces classes de base sont les suivantes :
Variation des collections
Les collections varient en fonction de la façon dont elles stockent, trient et comparent des éléments, et comment elles effectuent des recherches.
La SortedList classe et la SortedList<TKey,TValue> classe générique fournissent des versions triées de la Hashtable classe et de la Dictionary<TKey,TValue> classe générique.
Toutes les collections utilisent des index de base zéro, à l’exception de Array, qui permet des tableaux avec des index qui ne sont pas de base zéro.
Vous pouvez accéder aux éléments d’une SortedList ou d’une KeyedCollection<TKey,TItem> soit par la clé, soit par l’index de l’élément. Vous ne pouvez accéder aux éléments d’un Hashtable ou d’un Dictionary<TKey,TValue> qu'à l'aide de la clé de l’élément.
Utiliser LINQ avec des types de collection
La fonctionnalité LINQ to Objects fournit un modèle courant pour accéder aux objets en mémoire de n’importe quel type qui implémente IEnumerable ou IEnumerable<T>. Les requêtes LINQ présentent plusieurs avantages par rapport aux constructions standards, telles que les boucles foreach.
- Ils sont concis et plus faciles à comprendre.
- Ils peuvent filtrer, commander et regrouper des données.
- Ils peuvent améliorer les performances.
Pour plus d’informations, consultez LINQ to Objects (C#),LINQ to Objects (Visual Basic) et Parallel LINQ (PLINQ).
Rubriques connexes
| Titre | Descriptif |
|---|---|
| Collections et structures de données | Décrit les différents types de collection disponibles dans .NET, notamment les piles, les files d’attente, les listes, les tableaux et les dictionnaires. |
| Types de collections 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 collection triés | Décrit les classes qui fournissent des fonctionnalités de tri pour les listes et les ensembles. |
| Génériques | Décrit la fonctionnalité générique, notamment les collections génériques, les délégués et les interfaces fournies par .NET. Fournit des liens vers la documentation des fonctionnalités pour C#, Visual Basic, Visual C++, et les technologies associées telles que la réflexion. |
Référence
System.Collections.ICollection
System.Collections.Generic.ICollection<T>
System.Collections.Generic.IList<T>