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:

note

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.


tip

Der ScriptForge-Dienst 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")
  
warning

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
  
note

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 angibt.

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

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 angibt.

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

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
  

Bitte unterstützen Sie uns!