Partager via


Collection, objet (Visual Basic)

Mise à jour : novembre 2007

Une Collection Visual Basic est un ensemble ordonné d'éléments pouvant être désigné comme une unité.

Notes

L'objet Visual Basic Collection offre un moyen commode de visualiser un groupe d'éléments associé comme un objet unique. Les objets, ou éléments, d'une collection ont besoin d'être associés simplement par le fait qu'ils figurent dans la collection. Les éléments d'une collection ne doivent pas partager le même type de données.

Vous pouvez créer une collection de la même manière que vous créez d'autres objets, comme décrit dans l'exemple suivant.

Dim coll As New Microsoft.VisualBasic.Collection()

Une fois que vous avez créé une collection, vous pouvez effectuer l'une des actions suivantes :

  • ajouter un élément par le biais de la méthode Add ;

  • supprimer un élément avec la méthode Remove ;

  • supprimer tous les éléments via la méthode Clear ;

  • Connaître le nombre d'éléments contenus dans la collection avec la propriété Count.

  • Vérifier la présence d'un élément spécifique avec la méthode Contains.

  • Retourner un élément spécifique de la collection avec la propriété Item.

  • parcourir la collection entière à l'aide de For Each...Next, instruction (Visual Basic).

    Remarque :

    Bien que l'objet Collection Visual Basic possède des fonctionnalités identiques à celles de l'objet Collection dans Visual Basic 6.0, les deux ne peuvent pas interopérer dans un environnement COM.

    Attention :

    Le parcours d'une Collection Visual Basic n'est pas une procédure thread-safe. Même si une collection est synchronisée, d'autres threads peuvent toujours la modifier. Cela amène l'énumérateur à lever une exception. Pour garantir la sécurité des threads au cours de l'énumération, vous pouvez soit verrouiller la collection, soit intercepter les exceptions résultant des modifications apportées par d'autres threads. Pour plus d'informations sur la façon de verrouiller un élément de programmation, consultez SyncLock, instruction.

Exemple

L'exemple suivant crée les noms d'objets de la Collection et une boîte de dialogue pour que l'utilisateur ajoute des noms (names) d'objets à la collection. Il montre ensuite les noms de la collection, puis vide la collection sans effacer l'objet Collection.

Pour voir comment cela fonctionne, sélectionnez la commande Ajouter une classe commande dans le menu Projet et déclarez une variable publique appelée instanceName au niveau du module de nameClass (type Public instanceName) pour contenir le nom de chaque instance. Conservez le nom par défaut (nameClass). Copiez et collez le code suivant dans la section General d'un autre module, puis faites-le démarrer par l'instruction classNamer dans une autre procédure. (Cet exemple fonctionne uniquement avec des applications hôtes qui prennent en charge des classes.)

Public Class nameClass
    Public instanceName As String
End Class
Sub classNamer()
    ' Create a Visual Basic Collection object.
    Dim names As New Microsoft.VisualBasic.Collection()
    Dim key As Integer
    Dim msg As String
    Dim name As String
    Dim nameList As String = ""
    ' 1. Get names from the user to add to the collection.
    Do
        Dim inst As New nameClass()
        key += 1
        msg = "Please enter a name for this object." & vbCrLf _
            & "Press Cancel to see names in collection."
        name = InputBox(msg, "Name the Collection items")
        inst.instanceName = name
        ' If user entered a name, add it to the collection.
        If inst.instanceName <> "" Then
            names.Add(inst, CStr(key))
        End If
    Loop Until name = ""
    ' 2. Create and display a list of names from the collection.
    For Each oneInst As nameClass In names
        nameList &= oneInst.instanceName & vbCrLf
    Next oneInst
    MsgBox(nameList, , "Instance Names in names Collection")
    ' 3. Remove elements from the collection without disposing of the collection.
    For count As Integer = 1 To names.Count
        names.Remove(1)
        ' Since Visual Basic collections are reindexed automatically, 
        ' remove the first member on each iteration.
    Next count
End Sub

Configuration requise

Espace de noms :Microsoft.VisualBasic

**Assembly :**bibliothèque Visual Basic Runtime (dans Microsoft.VisualBasic.dll)

Voir aussi

Référence

Collection, membres de l'objet

GetEnumerator, méthode (objet Collection)