Samlingsobjekt

Samlinger kan bruges til at lagre elementer af forskellige typer. Hvert element kan tilgås med sit indeks eller en valgfri nøgle, der er knyttet til det.

Et Collection(samlings)-objekt har følgende metoder:

note

Elementer i en samling kan tilgås enten ved deres indekser (som i en 1-baseret, endimensionel matriks) eller ved deres tilknyttede nøgler.


tip

Tjenesten ScriptForge Dictionary udvider objektet Collection (samling) ved at sørge for supplerende funktionaliteter som nøgle-hentning og - erstatning såvel som import til/eksdport fra matriksobjekter og JSON-strenge.


Oprettelse af en samling

For at oprette en Collection (samling) bruger du nøgleordet New (ny). Det følgende eksempel opretter et Collection (samlings)-objekt og befolker det 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
  

Tilføjelse af elementer

Metoden Add (tilføj) kan bruges til at tilføje nye elementer til Collection (samlings)-objektet.

Syntaks:

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

Parametre:

element: det element, der skal tilføjes Collection (samlingen). Kan være af enhver type.

nøgle: strengværdi brugt som en en unik nøgle til at identificere dens værdi.

før, efter: valgfrit nøgleordsargument, der indikerer, hvor det nye element skal placeres i Collection (samlingen). Kun et af argumenterne før eller efter kan angives for at bestemme indekset eller nøglen, foran hvilken (eller efter hvilken) det nye element skal placeres.

Eksempel:

Eksemplet herunder tilføjer to elementer til en Collection (samling). Den første har har en nøgle tilknyttet, mens den anden ikke har.


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

Metoden Add (tilføj) understøtter også nøgleordsargumenter:


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

Nøgler skal være unikke i et Collection (samlings)-objekt. Sammenligning mellem nøgler er Stort-og-småt. Tilføjelse af nøgleduplikater resulterer i en kørselsfejl.


Eksemplet herunder illustrerer, hvordan nøgleordsargumenterne Before (før) og After (efter) bruges til at bestemme placeringen af det element, der tilføjes.


    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 (samlings)-objekt er tildelt en heltals-indeksværdi, der begynder med 1 og svarer til den rækkefølge, de blev tilføjet i.


Tilgang til elementer

Brug metodenItem (element) til at tilgå et givet element ved dets indeks eller nøgle.

oCollection.Item(index)

oCollection.Item(key)

Parametre:

indeks: en heltalsværdi, der angiver indekset på det element, der skal returneres.

nøgle: en strengværdi, der angiver nøglen til det element, der 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
  

Fjernelse af elementer

Brug metoden Remove (fjern) til at slette elementer fra et Collection (samlings)-objekt.

Syntaks:

Elementer kan fjernes enten ved deres indekser eller nøgleværdier.

oCollection.Remove(index)

oCollection.Remove(key)

Parametre:

indeks: en heltals værdi, der angiver indekset på det element, der skal fjernes.

nøgle: en strengværdi, der angiver nøglen til det element, der 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
  

Gentagelse over alle elementer

Det er muligt at bruge udtrykket For Each ... Next (for hver ... næste) til at gentage over alle elementer i en Collection (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
  

Rydning af en samling

For at fjerne alle elementer fra et Collection (samlings)-objekt kalder du metoden Remove (fjern) forhvert element, som illustreret i eksemplet herunder:


    ' Opretter en eksempel-samling med to elementer
    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
  

Støt os venligst!