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!