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:

note

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


tip

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

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
  
note

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
  

Supporter oss!