Partager via


Collections en tant qu'alternative aux tableaux

Mise à jour : novembre 2007

Bien que les collections soient souvent utilisées pour fonctionner avec le type de données Object, vous pouvez les utiliser avec tout autre type de données. Parfois, il peut être plus efficace d'enregistrer des éléments dans une collection plutôt que dans un tableau.

Si vous devez modifier la taille d'un tableau, vous devez utiliser l'ReDim, instruction (Visual Basic). Dans ce cas, Visual Basic crée un tableau et libère le tableau précédent pour qu'il soit éliminé. Cela nécessite un temps d'exécution. Par conséquent, si le nombre d'éléments avec lesquels vous travaillez change fréquemment ou si vous ne pouvez pas prévoir le nombre maximal d'éléments dont vous aurez besoin, vous pourriez obtenir des performances supérieures en utilisant une collection.

Une collection, qui n'est pas obligée de créer de nouvel objet ni de copier d'éléments existants, peut gérer le redimensionnement en moins de temps d'exécution qu'un tableau, qui doit utiliser ReDim. Mais si la taille ne change pas ou change rarement, il est probable qu'un tableau constitue une solution plus efficace. Comme toujours, les performances dépendent beaucoup de l'application. Il vaut souvent la peine d'essayer à la fois un tableau et une collection.

Collections spécialisées

Le .NET Framework fournit également diverses classes, interfaces et structures pour les collections générales et spéciales. Les espaces de noms System.Collections et System.Collections.Specialized contiennent des définitions et des implémentations qui incluent des dictionnaires, des listes, des files d'attente et des piles. L'espace de noms System.Collections.Generic fournit une grande partie de ceux-ci dans des versions génériques, qui prennent un ou plusieurs arguments de type.

Si votre collection doit contenir des éléments d'un seul type de données spécifique, une collection générique offre l'avantage de mettre en vigueur la sécurité de type. Pour plus d'informations sur les types génériques, consultez Types génériques en Visual Basic.

Exemple

Description

L'exemple suivant utilise la classe générique System.Collections.Generic.List<T> du .NET Framework pour créer une collection de listes de structures customer.

Code

' Define the structure for a customer.
Public Structure customer
    Public name As String
    ' Insert code for other members of customer structure.
End Structure
' Create a module-level collection that can hold 200 elements.
Public custFile As New List(Of customer)(200) 
' Add a specified customer to the collection.
Private Sub addNewCustomer(ByVal newCust As customer)
    ' Insert code to perform validity check on newCust.
    custFile.Add(newCust)
End Sub
' Display the list of customers in the Debug window.
Private Sub printCustomers()
    For Each cust As customer In custFile
        Debug.WriteLine(cust)
    Next cust
End Sub

Commentaires

La déclaration de la collection custFile spécifie qu'elle peut contenir uniquement des éléments de type customer. Elle prévoit également une capacité initiale de 200 éléments. La procédure addNewCustomer vérifie que le nouvel élément est valide, puis elle l'ajoute à la collection. La procédure printCustomers utilise une boucle For Each pour parcourir la collection et afficher ses éléments.

Voir aussi

Tâches

Comment : déclarer une variable tableau

Comment : créer un tableau

Comment : initialiser une variable tableau

Dépannage des tableaux

Concepts

Collections en Visual Basic

Types génériques en Visual Basic

Référence

ReDim, instruction (Visual Basic)

Autres ressources

Tableaux dans Visual Basic