Collections génériques dans le .NET Framework
Mise à jour : novembre 2007
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
Un grand nombre de types collection 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.
Remarque : |
---|
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 nullables. |
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
Concepts
Vue d'ensemble des génériques dans le .NET Framework
Délégués génériques pour la manipulation de tableaux et de listes
Avantages et limitations des génériques
Référence
System.Collections.ObjectModel