Pomoc Collabora Office 24.04
Kolekcje mogą służyć do przechowywania elementów różnego typu. Dostęp do każdego elementu można uzyskać za pomocą jego indeksu lub opcjonalnego klucza z nim powiązanego.
Obiekt Collection ma następujące metody:
Add: wstawia nowy element do kolekcji. Opcjonalnie wartość ciągu może być zdefiniowana jako klucz do elementu.
Count: zwraca liczbę elementów w kolekcji.
Item: zwraca element w kolekcji, przekazując jego indeks lub klucz.
Remove: usuwa określony element z kolekcji według jego indeksu lub klucza.
Dostęp do elementów w kolekcji można uzyskać za pomocą ich indeksów (jak w jednowymiarowej tablicy opartej na 1) lub powiązanych z nimi kluczy.
Usługa ScriptForge Dictionary rozszerza obiekt Collection, udostępniając dodatkowe funkcje jako klucz pobieranie i zastępowanie, a także import/eksport do obiektów tablicowych i łańcuchów JSON.
Aby utworzyć Collection, użyj słowa kluczowego New. Poniższy przykład tworzy obiekt Collection i zapełnia go trzema elementami:
Dim myCollection as New Collection
myCollection.Add("Some text")
myCollection.Add(100)
myCollection.Add(Array(1, 2, 3, 4))
MsgBox myCollection.Count ' 3
Metoda Add może być użyta do dodania nowych elementów do obiektu Collection.
oCollection.Add(item, [key], [before|after])
item: element, który ma zostać dodany do Collection. Może być dowolnego typu.
key: wartość ciągu używana jako unikalny klucz używany do identyfikacji tej wartości.
before, after: opcjonalne słowo kluczowe, które wskazuje, gdzie nowy element zostanie umieszczony w Collection. Tylko jeden z argumentów before lub after może być podany w celu określenia indeksu lub klucza, przed którym (lub po którym) ma zostać umieszczona nowa pozycja.
Poniższy przykład dodaje dwa elementy do Collection. Z pierwszym skojarzony jest klucz, a z drugim nie.
Dim myCollection as New Collection
myCollection.Add(100, "first")
myCollection.Add(101)
Metoda Add obsługuje również argumenty słów kluczowych:
myCollection.Add(item := 100, key := "first")
Klucze muszą być unikalne w obiekcie Collection. W porównaniu kluczy wielkość liter nie jest rozróżniana. Dodanie zduplikowanych kluczy spowoduje błąd w czasie wykonywania.
Poniższy przykład ilustruje, jak używać argumentów słów kluczowych Before i After w celu określenia pozycji dodawanego elementu.
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
Elementom w obiekcie Collection przypisywana jest wartość indeksu liczb całkowitych, która zaczyna się od 1 i odpowiada kolejności, w jakiej zostały dodane.
Użyj metody Item, aby uzyskać dostęp do danego elementu za pomocą jego indeksu lub klucza.
oCollection.Item(index)
oCollection.Item(key)
index: wartość całkowita określająca indeks elementu, który ma zostać zwrócony.
key: wartość ciągu określająca klucz elementu, który ma zostać zwrócony.
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
Użyj metody Remove, aby usunąć elementy z obiektu Collection.
Elementy można usuwać na podstawie ich indeksów lub wartości kluczy.
oCollection.Remove(index)
oCollection.Remove(key)
index: wartość całkowita określająca indeks pozycji do usunięcia.
key: wartość ciągu określająca klucz elementu do usunięcia.
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
Możliwe jest użycie instrukcji For Each ... Next do iteracji po wszystkich elementach w Collection.
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
Aby usunąć wszystkie elementy z obiektu Collection, wywołaj metodę Remove dla każdego elementu, jak pokazano w poniższym przykładzie:
' Utwórz przykładową kolekcję z dwoma wpisami
Dim myCollection as New Collection
myCollection.Add(item := 10, key := "A")
myCollection.Add(item := 11, key := "B")
MsgBox myCollection.Count ' 2
' Usuwa wszystkie elementy w kolekcji
For i = myCollection.Count To 1 Step -1
myCollection.Remove(i)
Next i
MsgBox myCollection.Count ' 0