Verzamelobject

Verzamelingen kunnen worden gebruikt om items van verschillende typen op te slaan. Elk item is toegankelijk via de index of via een optionele sleutel die eraan is gekoppeld.

Een Verzamelobject heeft de volgende methoden:

note

Items in een verzameling zijn toegankelijk via hun indexen (zoals in een 1-dimensionale matrix) of via de bijbehorende sleutels.


tip

De service ScriptForge Dictionary breidt het Verzamelobject uit met het bieden van aanvullende functies zoals het ophalen en vervangen van sleutels, evenals het importeren/exporteren naar matrix-objecten en JSON-strings.


Een verzameling maken

Gebruik het trefwoord Nieuw om een Verzameling te maken. In het volgende voorbeeld wordt een Verzamelobject gemaakt en gevuld met drie items:


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

Items toevoegen

De methode Toevoegen kan worden gebruikt om nieuwe items toe te voegen aan het Verzamelobject.

Syntaxis:

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

Parameters:

item: het item dat moet worden toegevoegd aan de Verzameling. Kan van elk type zijn.

sleutel: tekenreekswaarde die wordt gebruikt als de unieke sleutel die wordt gebruikt om deze waarde te identificeren.

voor, na: optioneel trefwoordargument dat aangeeft waar het nieuwe item in de Verzameling zal worden geplaatst. Slechts één van de argumenten voor of na kan worden opgegeven om de index of sleutel te bepalen waarvoor (of waarna) het nieuwe item moet worden geplaatst.

Voorbeeld:

Het onderstaande voorbeeld voegt twee elementen toe aan een Verzameling. De eerste heeft een bijbehorende sleutel, de tweede niet.


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

De methode Toevoegen ondersteunt ook trefwoordargumenten:


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

Sleutels moeten uniek zijn in een Verzamelobject. Vergelijking tussen toetsen is hoofdlettergevoelig. Het toevoegen van dubbele sleutels zal resulteren in een runtime-fout.


Het onderstaande voorbeeld illustreert hoe u de trefwoordargumenten Voor en Na gebruikt om de positie te bepalen van het item dat wordt toegevoegd.


    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

Items in een Verzamelobject krijgen een integer-indexwaarde toegewezen die begint bij 1 en overeenkomt met de volgorde waarin ze zijn toegevoegd.


Toegang tot items

Gebruik de methode Item om toegang te krijgen tot een bepaald item via de index of sleutel.

oCollection.Item(index)

oCollection.Item(key)

Parameters:

index: een geheel getal dat de index aangeeft van het item dat moet worden geretourneerd.

sleutel: een tekenreekswaarde die de sleutel specificeert van het item dat moet worden geretourneerd.

Voorbeeld:


    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
  

Items verwijderen

Gebruik de methode Verwijderen om items uit een Verzamelobject te verwijderen.

Syntaxis:

Items kunnen worden verwijderd op basis van hun indexen of sleutelwaarden.

oCollection.Remove(index)

oCollection.Remove(key)

Parameters:

index: een geheel getal dat de index aangeeft van het te verwijderen item.

sleutel: een tekenreekswaarde die de sleutel aangeeft van het item dat moet worden verwijderd.

Voorbeeld:


    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
  

Over alle items itereren

Het is mogelijk om een Voor, Elke ... Volgende-statement te gebruiken om alle items in een Verzameling te herhalen.


    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
  

Een verzameling wissen

Om alle items uit een Verzamelobject te verwijderen, roept u de methode Verwijderen voor elk item aan, zoals geïllustreerd in het onderstaande voorbeeld:


    ' Maak een voorbeeldverzameling met twee items
    Dim myCollection as New Collection
    myCollection.Add(item := 10, key := "A")
    myCollection.Add(item := 11, key := "B")
    MsgBox myCollection.Count ' 2
    ' Verwijdert alle items uit de verzameling
    For i = myCollection.Count To 1 Step -1
    	myCollection.Remove(i)
    Next i
    MsgBox myCollection.Count ' 0
  

Help ons, alstublieft!