Share via


Collections dans le .NET Framework avec Visual Basic

Mise à jour : novembre 2007

Le .NET Framework fournit des classes spécialisées pour le stockage et la récupération des données. Ces classes fournissent la prise en charge des piles, files d'attente, listes et tables de hachage. La plupart des classes de collection implémentent les mêmes interfaces. Vous pouvez créer vos propres classes de collection, si nécessaire, en implémentant ces interfaces.

Vous devez déterminer quel type de collection est le plus adapté à vos besoins.

Différences entre les classes de collection Visual Basic et .NET Framework

Les classes de collection du .NET Framework sont définies dans les espaces de noms System.Collections, System.Collections.Generic, System.Collections.Specialized et System.Collections.ObjectModel. Les principales différences entre les classes de collection Visual Basic et du .NET Framework sont les suivantes :

  • Base d'index. Les collections du .NET Framework sont de base zéro, tandis que la collection Visual Basic est de base 1. Cela signifie que les éléments d'une collection Visual Basic ont des valeurs d'index allant de 1 à la valeur du Count, propriété (objet Collection), alors que les éléments d'une collection du .NET Framework ont des valeurs d'index allant de 0 à une valeur inférieure à la propriété Count de la collection.

  • Type d'élément. La collection Visual Basic prend en charge les éléments de type Object. Cette collection n'est pas de type sécurisé : vous pouvez ajouter un élément à n'importe quel type de données. Cela se traduit généralement par des performances diminuées parce que vous devez convertir les éléments du type de données Object vers leur type réel.

    Certaines des collections du .NET Framework ont également des éléments de type Object, mais beaucoup d'autres sont fortement typées, ce qui signifie qu'elles prennent en charge des éléments d'un type spécifique qui les sécurise et qui optimise les performances.

  • Éléments à clé. La collection Visual Basic vous permet de spécifier une clé lorsque vous y ajoutez un élément. La clé est une valeur de chaîne unique que vous pouvez utiliser ultérieurement pour accéder à cet élément particulier. Les collections du .NET Framework varient par rapport aux clés. Certaines prennent en charge les clés, d'autres non.

Classes System.Collections

Les classes de l'espace de noms System.Collections ne stockent pas les éléments comme des objets spécifiquement typés, mais comme des objets de type Object.

Le tableau suivant décrit certaines des classes fréquemment utilisées :

Classe

Description

ArrayList

Implémente l'interface IList à l'aide d'un tableau dont la taille est augmentée de manière dynamique.

BitArray

Gère un tableau compact de valeurs de bit qui sont représentées par des valeurs Boolean, ou True indique que le bit est activé (1) et False que le bit est désactivé (0).

Hashtable

Représente une collection de paires clé/valeur qui sont organisées en fonction du code de hachage de la clé.

Queue

Représente une collection d'objets de type premier entré, premier sorti (FIFO, first-in-first-out).

Stack

Représente une simple collection d'objets non générique de type dernier entré, premier sorti (LIFO, last-in-first-out).

Classes System.Collections.Generic et System.Collections.ObjectModel

Les espaces de noms System.Collections.Generic et System.Collections.ObjectModel fournissent des types génériques qui vous permettent de créer des collections fortement typées et de spécifier le type de données de l'élément lorsque vous les créez.

Le tableau suivant décrit certaines des classes fréquemment utilisées :

Classe

Description

Collection<T>

Fournit la classe de base pour une collection générique.

Dictionary<TKey, TValue>

Représente une collection de paires clé/valeur organisées en fonction de la clé.

KeyedCollection<TKey, TItem>

Fournit la classe de base abstraite pour une collection dont les clés sont incorporées dans les valeurs.

LinkedList<T>

Représente une liste à lien double.

LinkedListNode<T>

Représente un nœud dans un LinkedList<T>. Cette classe ne peut pas être héritée.

List<T>

Implémente l'interface IList<T> à l'aide d'un tableau dont la taille est augmentée de manière dynamique.

Queue<T>

Représente une collection d'objets de type premier entré, premier sorti.

SortedDictionary<TKey, TValue>

Représente une collection de paires clé/valeur triées sur la clé.

SortedList<TKey, TValue>

Représente une collection de paires clé/valeur triées par clé en fonction de l'implémentation IComparer<T> associée.

Stack<T>

Représente une collection d'instances à taille variable de type dernier entré, premier sorti (LIFO) du même type arbitraire.

ReadOnlyCollection<T>

Fournit la classe de base pour une collection en lecture seule générique.

Classes System.Collections.Specialized

L'espace de noms System.Collections.Specialized fournit des classes de collection spécialisées et fortement typées, telles que les collections à chaîne unique et les dictionnaires de listes liées et hybrides.

Le tableau suivant décrit certaines des classes fréquemment utilisées :

Classe

Description

CollectionsUtil

Crée des collections qui ne tiennent pas compte des majuscules et des minuscules dans les chaînes.

HybridDictionary

Implémente IDictionary à l'aide d'un ListDictionary lorsque la collection est petite, puis passe à un Hashtable lorsque la collection s'agrandit.

ListDictionary

Implémente IDictionary à l'aide d'une liste liée unique. Recommandée pour les collections qui contiennent généralement 10 éléments au plus.

NameObjectCollectionBase

Fournit la classe de base abstraite pour une collection de clés de chaîne et de valeurs d'objet associées accessibles à l'aide de la clé ou de l'index.

NameValueCollection

Représente une collection de clés de chaîne et de valeurs de chaîne associées accessibles à l'aide de la clé ou de l'index.

OrderedDictionary

Représente une collection de paires clé/valeur classées en fonction de la clé ou de l'index.

StringCollection

Représente une collection de chaînes.

StringDictionary

Implémente un tableau de hachage à l'aide de la clé et de la valeur fortement typées pour être des chaînes plutôt que des objets.

Voir aussi

Concepts

Collections en Visual Basic

Référence

Collection, objet (Visual Basic)

Autres ressources

Fonctionnalités plus poussées de Visual Basic