Inhoud

# Verzamelobject

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

Een Verzamelobject heeft de volgende methodes:

- Toevoegen: voegt een nieuw item toe aan de verzameling. Optioneel kan een tekenreekswaarde worden gedefinieerd als de sleutel tot het item.

- Aantal: geeft het aantal items in de verzameling terug.

- Item: retourneert het item in de verzameling door de index of sleutel door te geven.

- Verwijderen: verwijdert het gespecificeerde item uit de verzameling door middel van zijn index of sleutel.

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

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")

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

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 sleutelwaardes.

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

Verwante onderwerpen

Functie Matrix

ScriptForge.Dictionary dienst