Indhold

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

- Tilføj: indsætter et nyt element i samlingen. Valgfrit kan en strengværdi defineres som nøglen til elementet.

- Antal: returnerer antallet af elementer i sa,lingen.

- Element: returnerer elementet i samlingen ved at videregive det indeks eller nøgle.

- Fjern: fjerner det angivne element fra samlingen ved dets indeks eller nøgle.

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

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

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

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

Relaterede emner

Funktionen Matrix

Tjenesten ScriptForge.Ordbog