Innhald

# Samlingsobjekt

Samlingar kan brukast til å lagra element av ulike typar. Kvart element kan opnast ved hjelp av indeksen eller av ein valfri nøkkel som er knyt til han.

Eit Collection-objekt (samlingsobjekt) har desse metodane:

- Add: Legg eit nytt element inn i samlinga. Du kan også velja å definera ein strengverdi som nøkkelen til elementet.

- Count: returnerer talet på element i samlinga.

- Item: returnerer elementet i samlinga ved å senda indeksen eller nøkkelen.

- Remove: fjernar det spesifiserte elementet frå samlinga ved å bruka indeksen eller nøkkelen.

Du får tilgang til elementa i ei samling anten ved hjelp av indeksane (som i ei 1-basert eindimensjonal matrise) eller med dei tilknytte nøklane.

Tenesta ScriptForge Dictionary utvidar objektet Collection ved å tilby tilleggsfunksjonar som nøkkelhenting og -erstatning, i tillegg til import/eksport til matrise-objekt og JSON-strengar.

## Laga ei samling

For å laga ei Collection (samling) brukar du nøkkeleordet New (ny). Det følgjande eksempelet lagar eit Collection-objekt og fyller det med tre element:

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

## Leggja til element

Metoden Add kan brukast til å leggja til nye element i Collection-objektet.

### Syntaks:

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

### Parametrar:

element: det elementet som skal leggjast til i Collection. Kan vera av kva type som helst.

nøkkel: strengverdi brukt som ein unik nøkkel for å identifisera verdien.

før, etter: valfritt nøkkeleordsargument som indikerer kvar det nye elementet skal plaserast i Collection. Berre eittt av argumenta før eller etter kan brukast for å bestemma indeksen eller nøkkelen som det nye elementet skal plasserast framføre eller etter.

### Eksempel:

Eksempelet nedanfor legg to element til ei Collection. Den første har har ein nøkkel knytt til seg medan den andre ikkje har det.

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

Metoden Add har også støtte for nøkkelordargument:

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

Nøklar må vera unike i eit Collection-objekt. Samanlikninga mellom nøklar skil mellom små og store bokstavar. Legg du til duplikat av nøkkelord, får du ein køyretidsfeil.

Eksempelet nedanfor viser korleis nøkkelordargumenta Before og After vert brukte for å bestemma kvar elementet som vert lagt til skal plasserast.

        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

Elementa i eit Collection-objekt er tildelt ein heiltals-indeksverdi som byrjar med 1 og svarar til den rekkjefølgja dei vart lagt til i.

## Tilgang til element

Bruk metodenItem for å få tilgang etil eit gjeve element ved å bruka indeksen eller nøkkelen.

oCollection.Item(index)

oCollection.Item(key)

### Parametrar:

indeks: ein heiltalsverdi som spesifiserer indeksen til det elementet som skal returnerast.

nøkkel: ein strengverdi som spesifiserer nøkkelen til det elementet som skal returnerast.

### Eksempel:

        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

## Fjerna element

Bruk metoden Remove for å sletta element frå eit Collection-objekt.

### Syntaks:

Element kan fjernast anten ved å bruka indeksen eller nøkkelordet for elementet.

oCollection.Remove(index)

oCollection.Remove(key)

### Parametrar:

indeks: ein heiltalsverdi som spesifiserer indeksen til det elementet som skal fjernast.

nøkkel: ein strengverdi som spesifiserer nøkkelen til det elementet som skal fjernast.

### Eksempel:

        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

## Gjentaking over alle elementa

Det er mogleg å bruka uttrykket For Each … Next (for kvar … neste) for å gjenta over alle element i ei 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

## Rydda ei samling

For å fjerna alle elementa frå eit Collection-objekt kallar du opp metoden Remove for kvart element, som vist i eksempelet her:

        ' Lagar ei eksempel-samling med to element
        Dim myCollection as New Collection
        myCollection.Add(item := 10, key := "A")
        myCollection.Add(item := 11, key := "B")
        MsgBox myCollection.Count ' 2
        ' Fjernar alle elementa i samlinga
        For i = myCollection.Count To 1 Step -1
        	myCollection.Remove(i)
        Next i
        MsgBox myCollection.Count ' 0

Liknande emne

Array-funksjonen

Tenesta ScriptForge.Dictionary