Objet Collection

Les collections peuvent être utilisées pour stocker des éléments de différents types. Chaque élément est accessible par son index ou par une clé optionnelle qui lui est associée.

Un objet Collection a les méthodes suivantes :

note

Les éléments d'une collection sont accessibles soit par leurs indices (comme dans une matrice unidimensionnel basée sur 1), soit par leurs clés associées.


tip

Le service ScriptForge Dictionary √©tend l'objet Collection en fournissant des fonctionnalit√©s suppl√©mentaires telles que la r√©cup√©ration et le remplacement de cl√©s, ainsi que l'import/export vers des objets Array et des cha√ģnes JSON.


Création d'une collection

Pour créer une Collection, utilisez le mot-clé New. L'exemple suivant crée un objet Collection et le remplit avec trois éléments :


    Dim myCollection as New Collection
    myCollection.Add("Some text")
    myCollection.Add(100)
    myCollection.Add(Array(1, 2, 3, 4))
    MsgBox myCollection.Count ' 3
  

Ajout d'éléments

La méthode Add peut être utilisée pour ajouter de nouveaux éléments dans l'objet Collection.

Syntaxe :

oCollection.Add(item, [key], [before|after])

Paramètres :

item: l'élément à ajouter à la Collection. Peut être de n'importe quel type.

key: valeur de cha√ģne utilis√©e comme cl√© unique utilis√©e pour identifier cette valeur.

before, after: argument de mot-cl√© facultatif qui indique o√Ļ le nouvel √©l√©ment sera plac√© dans la Collection. Un seul des arguments before ou after peut √™tre sp√©cifi√© pour d√©terminer l'index ou la cl√© avant (ou apr√®s quoi) le nouvel √©l√©ment doit √™tre plac√©.

Exemple :

L'exemple ci-dessous ajoute deux éléments dans une Collection. Le premier a une clé qui lui est associée, alors que le second n'en a pas.


    Dim myCollection as New Collection
    myCollection.Add(100, "first")
    myCollection.Add(101)
  

La méthode Add prend également en charge les arguments de mots clés :


    myCollection.Add(item := 100, key := "first")
  
warning

Les cl√©s doivent √™tre uniques dans un objet Collection. La comparaison entre les cl√©s est insensible √† la casse. L'ajout de cl√©s dupliqu√©es entra√ģnera une erreur d'ex√©cution.


L'exemple ci-dessous illustre comment utiliser les arguments des mots clés Before et After pour déterminer la position de l'élément qui est ajouté.


    Dim myCollection as Variant
    myCollection = New Collection
    myCollection.Add(item := 101, key := "first")
    myCollection.Add(item := 103, key := "third")
    myCollection.Add(item := 105, key := "fifth")
    MsgBox myCollection.Item(2) ' 103
    myCollection.Add(item := 102, key := "second", before := "third")
    MsgBox myCollection.Item(2) ' 102
    myCollection.Add(item := 104, key := "fourth", after := 3)
    MsgBox myCollection.Item(4) ' 104
  
note

Les éléments d'un objet Collection reçoivent une valeur d'index entière qui commence à 1 et correspond à l'ordre dans lequel ils ont été ajoutés.


Accéder aux éléments

Utilisez la méthode Item pour accéder à un élément donné par son index ou sa clé.

oCollection.Item(index)

oCollection.Item(key)

Paramètres :

index: une valeur entière spécifiant l'index de l'élément à retourner.

key: une valeur de cha√ģne sp√©cifiant la cl√© de l'√©l√©ment √† retourner.

Exemple :


    Dim myCollection as New Collection
    myCollection.Add(item := 101, key := "A")
    myCollection.Add(item := 102, key := "B")
    myCollection.Add(item := 103, key := "C")
    MsgBox myCollection.Item("A") ' 101
    MsgBox myCollection.Item(3)   ' 103
  

Supprimer des éléments

Utilisez la méthode Remove pour supprimer des éléments d'un objet Collection.

Syntaxe :

Les éléments peuvent être supprimés soit par leurs indices, soit par leurs valeurs clés.

oCollection.Remove(index)

oCollection.Remove(key)

Paramètres :

index: une valeur entière spécifiant l'index de l'élément à supprimer.

key: une valeur de cha√ģne sp√©cifiant la cl√© de l'√©l√©ment √† supprimer.

Exemple :


    Dim myCollection as New Collection
    myCollection.Add(item := 101, key := "first")
    myCollection.Add(item := 102, key := "second")
    myCollection.Add(item := 103, key := "third")
    MsgBox myCollection.Count ' 3
    ' Removes the  first value
    myCollection.Remove(1)
    ' Removes the value whose key is "third"
    myCollection.Remove("third")
    MsgBox myCollection.Count ' 1
  

Itérer sur tous les éléments

Il est possible d'utiliser une instruction For Each ... Next pour parcourir tous les éléments d'une Collection.


    Dim myCollection as New Collection
    myCollection.Add(item := 101, key := "A")
    myCollection.Add(item := 102, key := "B")
    myCollection.Add(item := 103, key := "C")
    For Each value In myCollection
        MsgBox value
    Next value
  

Effacer une collection

Pour supprimer tous les éléments d'un objet Collection, appelez la méthode Remove pour chaque élément, comme illustré dans l'exemple ci-dessous :


    ' Créer un exemple de collection avec deux entrées
    Dim myCollection as New Collection
    myCollection.Add(item := 10, key := "A")
    myCollection.Add(item := 11, key := "B")
    MsgBox myCollection.Count ' 2
    ' Supprime tous les éléments de la collection
    For i = myCollection.Count To 1 Step -1
    	myCollection.Remove(i)
    Next i
    MsgBox myCollection.Count ' 0
  

Aidez-nous !