Collections génériques dans .NET

La bibliothèque de classes .NET fournit plusieurs classes de collections 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 fréquemment 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 ; elle 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 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 une liste. La classe générique SortedDictionary<TKey,TValue> est un dictionnaire pur et n'a pas de contrepartie non générique.

La classe générique LinkedList<T> est une véritable liste liée. Il n'a pas de contrepartie non générique.

System.Collections.ObjectModel

La classe générique Collection<T> fournit une classe de base pour dériver vos propres types de collections génériques. La classe ReadOnlyCollection<T> offre un moyen facile de produire 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> fournit un moyen de stocker des objets qui contiennent leurs propres clés.

Autres types génériques

La structure générique Nullable<T> vous permet d'utiliser des types valeur comme si la valeur null pouvait leur être affectée. Ceci peut être utile quand vous travaillez avec des requêtes de base de données, où des champs contenant des types valeur peuvent être manquants. Le paramètre de type générique peut être n'importe quel type valeur.

Notes

En 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 types valeur Nullable (référence C#) et types valeur Nullable (Visual Basic).

La structure générique ArraySegment<T> offre un moyen de délimiter une plage d'éléments dans un tableau unidimensionnel de base 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 classe MyEventArgs dérivée de EventArgs, pour stocker les données de votre événement. Vous pouvez ensuite déclarer l'événement comme suit :

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

Voir aussi