VB.Net Arrays: String, Dynamic με EXAMPLES
Τι είναι ένας πίνακας;
Ένας πίνακας είναι μια δομή δεδομένων που χρησιμοποιείται για την αποθήκευση στοιχείων του ίδιου τύπου δεδομένων. Τα στοιχεία ταξινομούνται διαδοχικά με το πρώτο στοιχείο να βρίσκεται στον δείκτη 0 και το τελευταίο στοιχείο στον δείκτη n-1, όπου n είναι ο συνολικός αριθμός στοιχείων στον πίνακα.
Πώς να δηλώσετε και να αρχικοποιήσετε έναν πίνακα
In vb.net, οι πίνακες δηλώνονται χρησιμοποιώντας την πρόταση Dim. Για παράδειγμα:
Dim myData() As Integer
Στο παραπάνω παράδειγμα, έχουμε ορίσει έναν πίνακα με το όνομα myData και θα πρέπει να περιέχει στοιχεία του ακέραιου τύπου δεδομένων. Το ακόλουθο παράδειγμα δείχνει πώς μπορούμε να δηλώσουμε έναν πίνακα για να κρατά στοιχεία συμβολοσειράς:
Dim myData(10) As String
Έχουμε ορίσει έναν πίνακα με το όνομα myData για να περιέχει 10 συμβολοσειρές.
Μπορούμε να αρχικοποιήσουμε τους πίνακες τη στιγμή της δήλωσης τους. Για παράδειγμα:
Dim myData() As Integer = {11, 12, 22, 7, 47, 32}
Δηλώσαμε τον πίνακα myData και προσθέσαμε 6 ακέραια στοιχεία σε αυτόν. Αυτό μπορεί επίσης να γίνει για την περίπτωση των χορδών:
Dim students() As String = {"John", "Alice", "Antony", "Gloria", "jayden"}
Δημιουργήσαμε έναν πίνακα με όνομα μαθητές και προσθέσαμε 5 ονόματα σε αυτόν.
Πίνακες σταθερού μεγέθους
Ένας πίνακας σταθερού μεγέθους περιέχει έναν σταθερό αριθμό στοιχείων. Αυτό σημαίνει ότι πρέπει να ορίσετε τον αριθμό των στοιχείων που θα περιέχει κατά τον ορισμό του. Ας υποθέσουμε ότι χρειάζεστε έναν πίνακα για να περιέχει μόνο 3 ονόματα μαθητών. Μπορείτε να ορίσετε και να αρχικοποιήσετε τον πίνακα ως εξής:
Dim students(0 to 2) As String students(0) = "John" students (1) = "Alice" students (2) = "Antony"
Ξεκινήσαμε δηλώνοντας έναν πίνακα συμβολοσειρών με το όνομα Students. Το 0 έως το 2 δηλώνει ότι ο πίνακας θα αποθηκεύσει στοιχεία από τον δείκτη του 0 έως τον δείκτη 2, δηλαδή θα έχουμε 3 στοιχεία συνολικά.
Για να προσθέσουμε στοιχεία στον πίνακα, χρησιμοποιήσαμε το όνομα του πίνακα και καθορίσαμε το ευρετήριο στον οποίο θα αποθηκευτεί το στοιχείο. Για παράδειγμα, το όνομα John θα αποθηκευτεί στο δείκτη 0 του πίνακα, που σημαίνει ότι θα αποτελέσει το πρώτο στοιχείο του πίνακα. Το Antony θα είναι το τελευταίο στοιχείο του πίνακα.
Δυναμικοί Πίνακες
Αυτός είναι ένας πίνακας που μπορεί να χωρέσει οποιοδήποτε αριθμό στοιχείων. Το μέγεθος του πίνακα μπορεί να αυξηθεί ανά πάσα στιγμή. Αυτό σημαίνει ότι μπορείτε να προσθέσετε νέα στοιχεία στον πίνακα όποτε θέλουμε. Για να το δείξουμε αυτό, ας ορίσουμε πρώτα έναν πίνακα ακεραίων:
Dim nums() As Integer
Έχουμε ορίσει έναν ακέραιο πίνακα με το όνομα nums. Τώρα πρέπει να προσθέσετε δύο στοιχεία στον πίνακα, δίνοντας ταυτόχρονα χώρο για αλλαγή μεγέθους. Πρέπει να χρησιμοποιήσετε τη δήλωση ReDim ως εξής:
ReDim nums(1) nums(0) = 12 nums(1) = 23
Ο πίνακας μας έχει τώρα δύο στοιχεία στους δείκτες 0 και 1. Πρέπει να προσθέσουμε ένα τρίτο στοιχείο σε αυτόν στον δείκτη 3 διατηρώντας τα δύο στοιχεία που έχει ήδη. Μπορούμε να το κάνουμε ως εξής:
ReDim Preserve nums(2) nums(2) = 35
Ο πίνακας έχει πλέον τρία στοιχεία.
Ανάκτηση των περιεχομένων ενός πίνακα
Ανάκτηση σημαίνει πρόσβαση στα στοιχεία του πίνακα. Για να αποκτήσουμε πρόσβαση σε ένα στοιχείο πίνακα, χρησιμοποιούμε το ευρετήριό του. Ας το δείξουμε αυτό χρησιμοποιώντας ένα παράδειγμα.
Βήμα 1) Ξεκινήστε δημιουργώντας μια νέα εφαρμογή κονσόλας.
Βήμα 2) Προσθέστε τον ακόλουθο κώδικα στην εφαρμογή:
Module Module1 Sub Main() Dim students(0 to 2) As String students(0) = "John" students(1) = "Alice" students(2) = "Antony" Console.WriteLine("First student is {0} ", students(0)) Console.WriteLine("Second student is {0} ", students(1)) Console.WriteLine("Third student is {0} ", students(2)) Console.ReadKey() End Sub End Module
Βήμα 3) Εκτελέστε τον κώδικα κάνοντας κλικ στο κουμπί Έναρξη από τη γραμμή εργαλείων. Θα εμφανιστεί το ακόλουθο παράθυρο:
Έχουμε χρησιμοποιήσει τον ακόλουθο κώδικα:
Επεξήγηση Κώδικα:
- Δημιουργία μιας ενότητας με το όνομα Module1.
- Δημιουργία της κύριας υποδιαδικασίας.
- Δημιουργία πίνακα με όνομα μαθητές για την αποθήκευση στοιχείων συμβολοσειράς. Ο πίνακας θα αποθηκεύει στοιχεία από το ευρετήριο 0 έως το δείκτη 2, που σημαίνει ότι θα έχει συνολικά 3 στοιχεία.
- Προσθέτοντας το όνομα John ως το πρώτο στοιχείο του πίνακα, δηλαδή, ο John αποθηκεύτηκε στο δείκτη 0.
- Προσθέτοντας το όνομα Alice ως το δεύτερο στοιχείο του πίνακα, δηλαδή το Alice αποθηκευμένο στο ευρετήριο 1.
- Προσθέτοντας το όνομα Antony ως το τρίτο στοιχείο του πίνακα, δηλαδή το Antony αποθηκευμένο στο ευρετήριο 2.
- Εκτύπωση κειμένου και του στοιχείου που είναι αποθηκευμένο στο ευρετήριο 0 του πίνακα σπουδαστών στην κονσόλα. Το student(0) μας βοηθά να έχουμε πρόσβαση στο στοιχείο στο ευρετήριο 0 του πίνακα με το όνομα Students.
- Εκτύπωση κειμένου και του στοιχείου που είναι αποθηκευμένο στο ευρετήριο 1 του πίνακα σπουδαστών στην κονσόλα. Το student(1) μας βοηθά να έχουμε πρόσβαση στο στοιχείο στο ευρετήριο 1 του πίνακα με το όνομα Students.
- Εκτύπωση κειμένου και του στοιχείου που είναι αποθηκευμένο στο ευρετήριο 2 του πίνακα σπουδαστών στην κονσόλα. Το student(2) μας βοηθά να έχουμε πρόσβαση στο στοιχείο στο ευρετήριο 2 του πίνακα με το όνομα Students.
- Παύση του παραθύρου της κονσόλας σε αναμονή ή ο χρήστης να προβεί σε ενέργειες για να το κλείσει.
- Λήξη της υποδιαδικασίας.
- Τέλος της ενότητας.
Προσθήκη νέων στοιχείων σε έναν πίνακα
Αυτό θα συμβεί μόνο εάν έχετε έναν δυναμικό πίνακα. Εάν είχατε δηλώσει έναν πίνακα διαστάσεων σταθερού μεγέθους και είναι γεμάτος στοιχεία πίνακα, δεν μπορείτε να προσθέσετε νέα στοιχεία σε αυτόν. Το ακόλουθο παράδειγμα δείχνει πώς να προσθέσετε νέα στοιχεία σε έναν δυναμικό πίνακα:
Βήμα 1) Ξεκινήστε δημιουργώντας μια νέα εφαρμογή κονσόλας.
Βήμα 2) Προσθέστε τον ακόλουθο κώδικα στην εφαρμογή:
Module Module1 Sub Main() Dim nums() As Integer ReDim nums(1) nums(0) = 12 nums(1) = 23 For x = 0 To nums.Length - 1 Console.WriteLine("Initial array element: {0}", nums(x)) Next ReDim Preserve nums(2) nums(2) = 35 For x = 0 To nums.Length - 1 Console.WriteLine("Final array element: {0}", nums(x)) Next Console.ReadKey() End Sub End Module
Βήμα 3) Κάντε κλικ στο κουμπί Έναρξη από τη γραμμή εργαλείων για να εκτελέσετε τον κώδικα. Θα πρέπει να λάβετε το ακόλουθο παράθυρο:
Έχουμε χρησιμοποιήσει τον ακόλουθο κώδικα:
Επεξήγηση Κώδικα:
- Δημιουργία μιας ενότητας με το όνομα Module1.
- Δημιουργία της κύριας υποδιαδικασίας.
- Δημιουργία πίνακα με το όνομα nums για τη διατήρηση ακέραιων τιμών.
- Καθορίζοντας ότι ο παραπάνω πίνακας θα αποθηκεύει δύο στοιχεία, δηλαδή στους δείκτες 0 και 1 ενώ θα αφήνει χώρο για αλλαγή μεγέθους.
- Προσθήκη του στοιχείου 12 στον δείκτη 0 του πίνακα αριθμών.
- Προσθήκη του στοιχείου 23 στον δείκτη 1 του πίνακα αριθμών.
- Χρησιμοποιώντας έναν βρόχο for για να δημιουργήσουμε μια μεταβλητή x για να μας βοηθήσει να επαναλάβουμε από το πρώτο έως το τελευταίο στοιχείο του πίνακα nums. Σημειώστε ότι ο πίνακας έχει πλέον δύο στοιχεία, το 12 και το 23.
- Εκτύπωση κειμένου και των στοιχείων του πίνακα στην κονσόλα.
- Τερματισμός του βρόχου for και μετάβαση στο επόμενο μέρος του κώδικα.
- Αλλάξτε το μέγεθος των αριθμών του πίνακα ώστε να επιτρέπονται στοιχεία στους δείκτες 0 έως 2. Τώρα θα μπορεί να αποθηκεύει 3 στοιχεία αντί 2. Η λέξη-κλειδί Διατήρηση μας βοηθά να διατηρήσουμε τα τρέχοντα στοιχεία του πίνακα, δηλαδή 12 και 23.
- Προσθήκη του στοιχείου 35 στο ευρετήριο 2 του πίνακα. Ο πίνακας έχει πλέον τρία στοιχεία, 12, 23 και 35.
- Χρησιμοποιώντας έναν βρόχο for για να δημιουργήσουμε μια μεταβλητή x για να μας βοηθήσει να επαναλάβουμε από το πρώτο έως το τελευταίο στοιχείο του πίνακα nums. Σημειώστε ότι ο πίνακας έχει πλέον τρία στοιχεία, 12, 23 και 35.
- Εκτύπωση κειμένου και των στοιχείων του πίνακα στην κονσόλα.
- Τερματισμός του βρόχου for και μετάβαση στο επόμενο μέρος του κώδικα.
- Παύση του παραθύρου της κονσόλας περιμένοντας ο χρήστης να προβεί σε ενέργειες για να το κλείσει.
- Λήξη της υποδιαδικασίας.
- Τέλος της ενότητας.
Διαγραφή πίνακα
Συνιστάται να διαγράψετε τον πίνακα σας αφού τελειώσετε με αυτόν, κυρίως όταν έχετε να κάνετε με έναν δυναμικό πίνακα. Αυτό θα σας βοηθήσει να ελευθερώσετε χώρο στη μνήμη.
Για να διαγράψετε έναν πίνακα, πρέπει απλώς να καλέσετε τη δήλωση Erase ακολουθούμενη από το όνομα του πίνακα. Για παράδειγμα:
Dim nums(1) As Integer nums(0) = 12 nums(1) = 23 Erase nums
Δηλώσαμε έναν πίνακα ακεραίων με το όνομα nums και προσθέσαμε δύο στοιχεία σε αυτόν. Η δήλωση Erase nums θα διαγράψει τον πίνακα.
Η λειτουργία διαχωρισμού
Η λειτουργία διαχωρισμού που παρέχεται από τη Visual Basic .NET μας βοηθά να χωρίσουμε μια συμβολοσειρά σε μέρη και να τα διατηρήσουμε σε έναν πίνακα. Το ακόλουθο παράδειγμα δείχνει πώς να χρησιμοποιήσετε αυτήν τη λειτουργία:
Βήμα 1) Δημιουργήστε μια νέα εφαρμογή κονσόλας.
Βήμα 2) Προσθέστε τον ακόλουθο κώδικα στην εφαρμογή:
Module Module1 Sub Main() Dim myarray() As String Dim guru99 As String Dim x As Integer guru99 = "Welcome, to, Guru99" myarray = Split(guru99, ", ") For x = LBound(myarray) To UBound(myarray) Console.WriteLine(myarray(x)) Next Console.ReadKey() End Sub End Module
Βήμα 3) Εκτελέστε τον κώδικα κάνοντας κλικ στο κουμπί Έναρξη από τη γραμμή εργαλείων. Θα πρέπει να λάβετε το ακόλουθο παράθυρο:
Έχουμε χρησιμοποιήσει τον ακόλουθο κώδικα:
Επεξήγηση Κώδικα:
- Δημιουργία μιας ενότητας με το όνομα Module1.
- Έναρξη της κύριας υποδιαδικασίας.
- Δημιουργία πίνακα με το όνομα myarray για τη διατήρηση των τιμών συμβολοσειράς.
- Δημιουργία μιας μεταβλητής συμβολοσειράς με το όνομα guru99.
- Δημιουργία ακέραιας μεταβλητής με όνομα x.
- Εκχώρηση συμβολοσειράς στη μεταβλητή guru99.
- Διαχωρισμός της παραπάνω συμβολοσειράς σε μέρη και τοποθέτησή τους στον πίνακα που ονομάζεται myarray. Το “,” (κόμμα) είναι ο οριοθέτης, επομένως η συνάρτηση διαχωρισμού θα το χρησιμοποιήσει για να επισημάνει το τέλος των διαφόρων τμημάτων της συμβολοσειράς.
- Χρησιμοποιώντας τη μεταβλητή x για επανάληψη μέσω του πίνακα που ονομάζεται myarray. Το LBound και το UBound καθορίζουν τα κάτω και τα άνω όρια του πίνακα, αντίστοιχα.
- Εκτύπωση των τιμών του πίνακα με το όνομα myarray στην κονσόλα.
- Τερματισμός του βρόχου for και
Η συνάρτηση Join
Η συνάρτηση join μας βοηθά να ενώσουμε πολλούς πίνακες σε μία μόνο συμβολοσειρά. Το παρακάτω παράδειγμα αποδεικνύει αυτό:
Βήμα 1) Ξεκινήστε δημιουργώντας μια νέα εφαρμογή κονσόλας.
Βήμα 2) Προσθέστε τον ακόλουθο κώδικα στην εφαρμογή:
Module Module1 Sub Main() Dim students(0 To 2) As String students(0) = "John" students(1) = "Alice" students(2) = "Antony" Dim classmates As String classmates = Join(students, ", ") Console.WriteLine(classmates) Console.ReadKey() End Sub End Module
Βήμα 3) Εκτελέστε τον κώδικα κάνοντας κλικ στο κουμπί Έναρξη στη γραμμή εργαλείων:
Έχουμε χρησιμοποιήσει τον ακόλουθο κώδικα:
Επεξήγηση Κώδικα:
- Δημιουργία μιας ενότητας με το όνομα Module1.
- Δημιουργία της κύριας υποδιαδικασίας.
- Δημιουργία πίνακα με το όνομα Students για να περιέχει 3 τιμές συμβολοσειρών.
- Προσθήκη του ονόματος John στο ευρετήριο 0 του πίνακα.
- Προσθήκη του ονόματος Alice στο ευρετήριο 1 του πίνακα.
- Προσθήκη του ονόματος Antony στο ευρετήριο 2 του πίνακα.
- Καθορισμός μεταβλητής με όνομα συμμαθητές τύπου δεδομένων συμβολοσειράς.
- Ενώνοντας όλα τα στοιχεία του πίνακα μαθητές και χωρίζοντας τα χρησιμοποιώντας ένα , (κόμμα). Το αποτέλεσμα αυτής της λειτουργίας θα εκχωρηθεί στους συμμαθητές της μεταβλητής.
- Εκτύπωση των περιεχομένων της μεταβλητής συμμαθητών στην κονσόλα.
- Παύση του παραθύρου της κονσόλας σε αναμονή για τον χρήστη να προβεί σε ενέργειες για να το κλείσει.
- Τερματισμός της κύριας υποδιαδικασίας.
- Τερματισμός της ενότητας.
Σύνοψη
- Οι πίνακες χρησιμοποιούνται για την αποθήκευση στοιχείων δεδομένων που ανήκουν στους ίδιους Τύπος δεδομένων.
- Ένας δυναμικός πίνακας επιτρέπει στο χρήστη να αλλάξει το μέγεθός του προσθέτοντας περισσότερα στοιχεία σε αυτόν. Χρησιμοποιείτε την εντολή ReDim για την προσθήκη στοιχείων σε έναν υπάρχοντα πίνακα
- Το μέγεθος ενός πίνακα σταθερού μεγέθους δεν μπορεί να αλλάξει.
- Τα στοιχεία του πίνακα ταξινομούνται χρησιμοποιώντας ευρετήρια, με το πρώτο στοιχείο να βρίσκεται στον δείκτη 0 και το τελευταίο στοιχείο στον δείκτη n-1, όπου n είναι ο συνολικός αριθμός των στοιχείων του πίνακα.
- Οι πίνακες μπορούν να διαγραφούν χρησιμοποιώντας τη συνάρτηση Διαγραφή
- Μπορείτε να χρησιμοποιήσετε συναρτήσεις split και join για να χωρίσετε ή να ενώσετε έναν πίνακα συμβολοσειρών αντίστοιχα