Partager via


Collections génériques dans .NET

La bibliothèque de classes .NET fournit un certain nombre de 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 collection couramment utilisés.

System.Collections.Generic

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

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

Il existe des versions génériques et non génériques de SortedList<TKey,TValue>. Les deux versions sont des hybrides d’un dictionnaire et d’une liste. La SortedDictionary<TKey,TValue> classe générique est un dictionnaire pur et n’a pas d’équivalent non générique.

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

System.Collections.ObjectModel

La Collection<T> classe générique fournit une classe de base pour dériver vos propres types de collection générique. La ReadOnlyCollection<T> classe offre un moyen simple de produire une collection en lecture seule à partir de n’importe quel type qui implémente l’interface IList<T> générique. La KeyedCollection<TKey,TItem> classe générique fournit un moyen de stocker des objets qui contiennent leurs propres clés.

Autres types génériques

La Nullable<T> structure générique vous permet d’utiliser des types valeur comme s’ils pourraient être affectés null. Cela peut être utile lors de l’utilisation de requêtes de base de données, où les champs qui contiennent des types valeur peuvent être manquants. Le paramètre de type générique peut être n’importe quel type valeur.

Remarque

Dans C# et Visual Basic, il n’est pas nécessaire d’utiliser Nullable<T> explicitement, car le langage a une syntaxe pour les types nullables. Consultez les types de valeur nullable (référence C#) et les types de valeur nullable (Visual Basic).

La ArraySegment<T> structure générique fournit un moyen de délimiter une plage d’éléments dans un tableau unidimensionnel à indexation zéro de n’importe quel type. Le paramètre de type générique est le type des éléments du tableau.

Le EventHandler<TEventArgs> délégué générique élimine la nécessité de déclarer un type délégué pour gérer les événements, si votre événement suit le modèle de gestion des événements utilisé par .NET. Par exemple, supposons que vous avez créé une MyEventArgs classe, dérivée de EventArgs, pour contenir les données de votre événement. Vous pouvez ensuite déclarer l’événement comme suit :

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

Voir aussi