Innhold
Innholdsliste 🔎︎

# Samlingsobjekt

Samlinger kan brukes til å lagre gjenstander av forskjellige typer. Hvert element kan nås via sin indeks eller med en valgfri nøkkel knyttet til den.

Et Collection-objekt har følgende metoder:

- Legg til: setter inn et nytt element i samlingen. Eventuelt kan en strengverdi defineres som nøkkelen til elementet.

- Antal: returnerer antall elementer i samlingen.

- Vare: returnerer elementer i samlingen ved å sende dens indeks eller nøkkel.

- Fjern: fjerner det spesifiserte elementet fra samlingen ved hjelp av indeksen eller nøkkelen.

Elementer i en samling kan nås enten med indeksene deres (som i en 1-basert endimensjonal matrise) eller med tilhørende nøkler.

ScriptForge Dictionary-tjenesten utvider Collection-objektet ved å tilby tilleggsfunksjoner som nøkkel henting og erstatning, samt import/eksport til Matrise-objekter og JSON-strenger.

## Opprette en samling

For å opprette en Samling bruk Ny søkeordet. Følgende eksempel oppretter et Collection-objekt og fyller det ut med tre elementer:

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

## Legg til elementer

Metoden Add kan brukes til å legge til nye elementer i Collection-objektet.

### Syntaks:

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

### Parametre:

item: elementet som skal legges til Samlingen. Kan være av hvilken som helst type.

nøkkel: strengverdi brukt som den unike nøkkelen som brukes til å identifisere denne verdien.

før, etter: valgfritt søkeordargument som indikerer hvor det nye elementet skal plasseres i Samlingen. Bare ett av argumentene før eller etter kan spesifiseres for å bestemme indeksen eller nøkkelen før (eller etter hvilken) det nye elementet skal plasseres.

### Eksempel:

Eksemplet nedenfor legger til to elementer i en Samling. Den første har en nøkkel knyttet til seg, mens den andre ikke har det.

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

Metoden Legg til støtter også søkeordargumenter:

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

Nøkler må være unike i et Collection-objekt. Sammenligning mellom nøkler er uavhengig av store og små bokstaver. Å legge til dupliserte nøkler vil resultere i en kjøretidsfeil.

Eksemplet nedenfor illustrerer hvordan du bruker søkeordargumentene Før og Etter for å bestemme plasseringen til elementet som legges til.

        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

Elementer i et Collection-objekt tildeles en heltallsindeksverdi som starter på 1 og tilsvarer rekkefølgen de ble lagt til.

## Få tilgang til elementer

Bruk Item-metoden for å få tilgang til et gitt element ved hjelp av dets indeks eller nøkkel.

oCollection.Item(index)

oCollection.Item(key)

### Parametre:

indeks: en heltallsverdi som spesifiserer indeksen til elementet som skal returneres.

nøkkel: en strengverdi som spesifiserer nøkkelen til elementet som skal returneres.

### 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

## Fjerne elementer

Bruk metoden Fjern for å slette elementer fra et Samling-objekt.

### Syntaks:

Elementer kan fjernes enten via deres indekser eller nøkkelverdier.

oCollection.Remove(index)

oCollection.Remove(key)

### Parametre:

indeks: en heltallsverdi som spesifiserer indeksen til elementet som skal fjernes.

nøkkel: en strengverdi som spesifiserer nøkkelen til elementet som skal fjernes.

### 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

## Iterering over alle elementer

Det er mulig å bruke en For Each ... Next-setning for å iterere over alle elementer i en Samling.

        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

## Fjerning av en samling

For å fjerne alle elementer fra et Collection-objekt anroper du Fjern-metoden for hvert element, som illustrert i eksemplet nedenfor:

        ' Lag en prøvesamling med to oppføringer
        Dim myCollection as New Collection
        myCollection.Add(item := 10, key := "A")
        myCollection.Add(item := 11, key := "B")
        MsgBox myCollection.Count ' 2
        ' Fjerner alle elementer i samlingen
        For i = myCollection.Count To 1 Step -1
        	myCollection.Remove(i)
        Next i
        MsgBox myCollection.Count ' 0

Lignende emner

Matrisefunksjon

ScriptForge.Ordbok tjeneste