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:

note

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.


tip

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

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
  
note

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
  

Støtt oss!