Περιεχόμενα

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

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

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

- Add: (Προσθήκη) εισάγει ένα νέο στοιχείο στη συλλογή. Προαιρετικά, μια τιμή συμβολοσειράς μπορεί να οριστεί ως το κλειδί για το στοιχείο.

- Count: (πλήθος) επιστρέφει τον αριθμό των στοιχείων στη συλλογή.

- Item: (Στοιχείο) επιστρέφει το στοιχείο στη συλλογή περνώντας τον δείκτη ή το κλειδί του.

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

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

Η υπηρεσία 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")

Τα κλειδιά πρέπει να είναι μοναδικά σε ένα αντικείμενο 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

Στα στοιχεία σε ένα αντικείμενο 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

Σχετικά θέματα

Συνάρτηση Array

Υπηρεσία ScriptForge.Dictionary