Inhalte

# Objekt Collection

Sammlungen können verwendet werden, um Elemente verschiedener Typen zu speichern. Auf jedes Element kann über seinen Index oder einen ihm zugeordneten optionalen Schlüssel zugegriffen werden.

Ein Objekt Collection hat die folgenden Methoden:

- Add: fügt ein neues Element in die Sammlung ein. Optional kann eine Zeichenfolge als Schlüssel zum Element definiert werden.

- Count: gibt die Anzahl der Elemente in der Sammlung zurück.

- Item: gibt das Element in der Sammlung zurück, indem es seinen Index oder Schlüssel übergibt.

- Remove: entfernt das angegebene Element anhand seines Indexes oder Schlüssels aus der Sammlung.

Auf Elemente in einer Sammlung kann entweder über ihre Indizes (wie in einer 1-basierten eindimensionalen Matrix) oder über ihre zugehörigen Schlüssel zugegriffen werden.

Der Dienst ScriptForge Dictionary erweitert das Objekt Collection um Bereitstellung zusätzlicher Funktionen wie Schlüsselabruf und -ersetzung sowie Import/Export in Matrixobjekte und JSON-Zeichenfolgen.

## Erstellen einer Sammlung

Verwenden Sie zum Erstellen von Collection das Schlüsselwort New. Das folgende Beispiel erstellt ein Objekt Collection und füllt es mit drei Elementen:

        Dim myCollection as New Collection
        myCollection.Add("Some text")
        myCollection.Add(100)
        myCollection.Add(Array(1, 2, 3, 4))
        MsgBox myCollection.Count ' 3

## Elemente hinzufügen

Die Methode Add kann verwendet werden, um neue Elemente zum Objekt Collection hinzuzufügen.

### Syntax:

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

### Parameter:

item: das Element, das Collection hinzugefügt werden soll. Kann von beliebiger Art sein.

key: Zeichenfolge, die als eindeutiger Schlüssel verwendet wird, um diesen Wert zu identifizieren.

before, after: optionales Schlüsselwortargument, das angibt, wo das neue Element in Collection platziert wird. Nur eines der Argumente before oder after kann angegeben werden, um den Index oder Schlüssel zu bestimmen, vor (oder nach) dem das neue Element platziert werden soll.

### Beispiel:

Das folgende Beispiel fügt zwei Elemente zu Collection hinzu. Dem ersten ist ein Schlüssel zugeordnet, dem zweiten nicht.

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

Die Methode Add unterstützt auch Schlüsselwortargumente:

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

Schlüssel müssen in einem Objekt Collection eindeutig sein. Der Vergleich zwischen Schlüsseln ist unabhängig von der Groß-/Kleinschreibung. Das Hinzufügen doppelter Schlüssel führt zu einem Laufzeitfehler.

Das folgende Beispiel veranschaulicht, wie die Schlüsselwortargumente Before und After verwendet werden, um die Position des hinzuzufügenden Elements zu bestimmen.

        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

Elementen in einem Objekt Collection wird ein ganzzahliger Indexwert zugewiesen, der bei 1 beginnt und der Reihenfolge entspricht, in der sie hinzugefügt wurden.

## Auf Elemente zugreifen

Verwenden Sie die Methode Item, um auf ein bestimmtes Element über seinen Index oder Schlüssel zuzugreifen.

oCollection.Item(index)

oCollection.Item(key)

### Parameter:

index: ein ganzzahliger Wert, der den Index des zurückzugebenden Elements festlegt.

key: eine Zeichenfolge, die den Schlüssel des zurückzugebenden Elements festlegt.

### Beispiel:

        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

## Elemente entfernen

Verwenden Sie die Methode Remove, um Elemente aus einem Objekt Collection zu löschen.

### Syntax:

Elemente können entweder anhand ihrer Indizes oder ihrer Schlüsselwerte entfernt werden.

oCollection.Remove(index)

oCollection.Remove(key)

### Parameter:

index: ein ganzzahliger Wert, der den Index des zu entfernenden Elements festlegt.

key: eine Zeichenfolge, die den Schlüssel des zu entfernenden Elements festlegt.

### Beispiel:

        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

## Iteration über alle Elemente

Es ist möglich, eine Anweisung For Each … Next zu verwenden, um alle Elemente in Collection zu durchlaufen.

        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

## Löschen einer "Collection"

Um alle Elemente aus einem Objekt Collection zu entfernen, rufen Sie die Methode Remove für jedes Element auf, wie im folgenden Beispiel dargestellt:

        ' Erstellt eine "Collection" mit zwei Einträgen
        Dim myCollection as New Collection
        myCollection.Add(item := 10, key := "A")
        myCollection.Add(item := 11, key := "B")
        MsgBox myCollection.Count ' 2
        ' Entfernt alle Elemente aus "Collection"
        For i = myCollection.Count To 1 Step -1
        	myCollection.Remove(i)
        Next i
        MsgBox myCollection.Count ' 0

Verwandte Themen

Funktion Array

Dienst ScriptForge.Dictionary

Bitte unterstützen Sie uns!