Partager via


Collections génériques dans le .NET Framework

Cette rubrique propose une vue d'ensemble des classes de collections génériques et d'autres types génériques dans le .NET Framework.

Collections génériques dans le .NET Framework

La bibliothèque de classes .NET Framework fournit plusieurs classes de collection génériques dans les espaces de noms System.Collections.Generic et System.Collections.ObjectModel. Pour plus d'informations sur ces classes, consultez Types de collections couramment utilisés.

System.Collections.Generic

La plupart des types de collections génériques sont des équivalents directs de types non génériques. Dictionary<TKey, TValue> est une version générique de Hashtable ; il utilise la structure générique KeyValuePair<TKey, TValue> pour l'énumération au lieu de DictionaryEntry.

List<T> est une version générique de ArrayList. Il existe des classes Queue<T> et Stack<T> génériques qui correspondent aux versions non génériques.

Il existe des versions génériques et non génériques de SortedList<TKey, TValue>. Dans les deux cas, il s'agit de versions hybrides entre un dictionnaire et une liste. La classe générique SortedDictionary<TKey, TValue> est un dictionnaire pur et n'a aucun équivalent non générique.

La classe générique LinkedList<T> est une véritable liste liée. Elle n'a aucun équivalent non générique.

System.Collections.ObjectModel

La classe générique Collection<T> fournit une classe de base destinée à dériver vos propres types collection génériques. La classe ReadOnlyCollection<T> offre un moyen facile de créer une collection en lecture seule à partir de n'importe quel type implémentant l'interface générique IList<T>. La classe générique KeyedCollection<TKey, TItem> permet de stocker des objets qui contiennent leurs propres clés.

Autres types génériques

La structure générique Nullable<T> permet d'utiliser des types valeur comme s'il était possible de leur assigner null. Cela peut s'avérer utile lors de l'utilisation de requêtes de base de données, dont certains champs contenant des types valeur sont parfois manquants. Le paramètre de type générique peut représenter n'importe quel type valeur.

RemarqueRemarque

En C#, il n'est pas nécessaire d'utiliser explicitement Nullable<T> dans la mesure où le langage possède une syntaxe pour les types Nullable.

La structure générique ArraySegment<T> permet de délimiter une plage d'éléments dans un tableau unidimensionnel, de base zéro, d'un type quelconque. Le paramètre de type générique est le type des éléments du tableau.

Le délégué générique EventHandler<TEventArgs> rend inutile la déclaration d'un type délégué pour gérer des événements, si votre événement respecte le modèle de gestion des événements utilisé par le .NET Framework. Supposons, par exemple, que vous avez créé une classe MyEventArgs, dérivée de EventArgs, pour stocker les données relatives à votre événement. Vous pouvez déclarer l'événement comme suit :

Public Event MyEvent As EventHandler(Of MyEventArgs)
public event EventHandler<MyEventArgs> MyEvent;
public:
    event EventHandler<MyEventArgs^>^ MyEvent;

Voir aussi

Référence

System.Collections.Generic

System.Collections.ObjectModel

Concepts

Génériques dans le .NET Framework

Délégués génériques pour la manipulation de tableaux et de listes

Interfaces génériques

Avantages et limitations des génériques