Αντικείμενο συλλογής

Οι συλλογές μπορούν να χρησιμοποιηθούν για την αποθήκευση στοιχείων διαφορετικών τύπων. Κάθε στοιχείο μπορεί να προσπελαστεί από το δείκτην του ή από ένα προαιρετικό κλειδί που σχετίζεται με αυτό.

Ένα αντικείμενο Collection (Συλλογή) έχει τις ακόλουθες μεθόδους:

note

Τα στοιχεία μιας Συλλογής μπορούν να προσπελαστούν είτε από τους δείκτες τους (όπως σε έναν μονοδιάστατο πίνακα που βασίζεται σε 1) είτε από τα συσχετισμένα κλειδιά τους.


tip

Η υπηρεσία ScriptForge Dictionary επεκτείνει το αντικείμενο Collection παρέχοντας συμπληρωματικά χαρακτηριστικά όπως ανάκτηση και αντικατάσταση κλειδιού, καθώς και εισαγωγή/εξαγωγή σε αντικείμενα πίνακα και συμβολοσειρές JSON.


Δημιουργία Συλλογής

Για να δημιουργήσετε μια Collection (Συλλογή) χρησιμοποιήστε τη λέξη-κλειδί New (Νέα). Το παρακάτω παράδειγμα δημιουργεί ένα αντικείμενο Collection και το συμπληρώνει με τρία στοιχεία:


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

Προσθήκη στοιχείων

Η μέθοδος Add (Προσθήκη) μπορεί να χρησιμοποιηθεί για την προσθήκη νέων στοιχείων στο αντικείμενο Collection (Συλλογή).

Σύνταξη:

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

Παράμετροι:

item: (στοιχείο) το στοιχείο που θα προστεθεί στη Collection (Συλλογή). Μπορεί να είναι οποιουδήποτε τύπου.

key: (κλειδί) τιμή συμβολοσειράς που χρησιμοποιείται ως το μοναδικό κλειδί για τον προσδιορισμό αυτής της τιμής.

before, after: (πριν, μετά) προαιρετικό όρισμα λέξης-κλειδιού που υποδεικνύει πού θα τοποθετηθεί το νέο στοιχείο στη Collection (Συλλογή). Μόνο ένα από τα ορίσματα before ή after μπορεί να καθοριστεί για τον προσδιορισμό του ευρετηρίου ή του κλειδιού πριν από το οποίο (ή μετά από αυτό) θα τοποθετηθεί το νέο στοιχείο.

Παράδειγμα:

Το παρακάτω παράδειγμα προσθέτει δύο στοιχεία σε μια Collection (Συλλογή). Το πρώτο έχει ένα κλειδί που σχετίζεται με αυτό, ενώ το δεύτερο όχι.


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

Η μέθοδος Add (Προσθήκη) υποστηρίζει επίσης ορίσματα λέξεων-κλειδιών:


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

Τα κλειδιά πρέπει να είναι μοναδικά σε ένα αντικείμενο Collection (Συλλογή). Η σύγκριση μεταξύ των κλειδιών είναι case-insensitive (χωρίς διάκριση πεζών-κεφαλαίων). Η προσθήκη διπλών κλειδιών θα οδηγήσει σε σφάλμα χρόνου εκτέλεσης.


Το παρακάτω παράδειγμα δείχνει πώς να χρησιμοποιήσετε τα ορίσματα λέξης-κλειδιού Before (Πριν) και After (Μετά) για να προσδιορίσετε τη θέση του στοιχείου που προστίθεται.


    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

Στα στοιχεία σε ένα αντικείμενο Collection (Συλλογή) εκχωρείται μια ακέραια τιμή ευρετηρίου που ξεκινά από το 1 και αντιστοιχεί στη σειρά με την οποία προστέθηκαν.


Πρόσβαση σε στοιχεία

Χρησιμοποιήστε τη μέθοδο Item για να προσπελάσετε ένα δεδομένο στοιχείο μέσω του ευρετηρίου ή του κλειδιού του.

oCollection.Item(index)

oCollection.Item(key)

Παράμετροι:

index: (ευρετήριο) μια ακέραια τιμή που καθορίζει το ευρετήριο του στοιχείου που θα επιστραφεί.

key: (κλειδί) μια τιμή συμβολοσειράς που καθορίζει το κλειδί του στοιχείου που θα επιστραφεί.

Παράδειγμα:


    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
  

Αφαίρεση αντικειμένων

Χρησιμοποιήστε τη μέθοδο Remove (Αφαίρεση) για να διαγράψετε στοιχεία από ένα αντικείμενο Collection (Συλλογή).

Σύνταξη:

Τα στοιχεία μπορούν να αφαιρεθούν είτε από τα ευρετήρια τους είτε με τις βασικές τους τιμές.

oCollection.Remove(index)

oCollection.Remove(key)

Παράμετροι:

index: (ευρετήριο) μια ακέραιη τιμή που καθορίζει το ευρετήριο του στοιχείου που θα αφαιρεθεί.

key: (κλειδί) μια τιμή συμβολοσειράς που καθορίζει το κλειδί του στοιχείου που θα αφαιρεθεί.

Παράδειγμα:


    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
  

Επανάληψη σε όλα τα στοιχεία

Είναι δυνατό να χρησιμοποιήσετε μια πρόταση For Each ... Next (Για κάθε ... Επόμενο) για να επαναλάβετε όλα τα στοιχεία σε μια 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
  

Εκκαθάριση συλλογής

Για να αφαιρέσετε όλα τα στοιχεία από ένα αντικείμενο Collection (Συλλογή) καλέστε τη μέθοδο Remove (Αφαίρεση)για κάθε στοιχείο, όπως φαίνεται στο παρακάτω παράδειγμα:


    ' Δημιουργήστε μια συλλογή δείγματος με δύο καταχωρήσεις
    Dim myCollection as New Collection
    myCollection.Add(item := 10, key := "A")
    myCollection.Add(item := 11, key := "B")
    MsgBox myCollection.Count ' 2
    ' Αφαιρεί όλα τα στοιχεία της συλλογής
    For i = myCollection.Count To 1 Step -1
    	myCollection.Remove(i)
    Next i
    MsgBox myCollection.Count ' 0
  

Παρακαλούμε, υποστηρίξτε μας!