multidimensional arrays
Αυτό το σεμινάριο εξηγεί τα πάντα για τις πολυδιάστατες συστοιχίες και τις οδοντωτές συστοιχίες στο C # με παραδείγματα. Οι πολυδιάστατες συστοιχίες είναι επίσης γνωστές ως ορθογώνιες συστοιχίες:
Εξερευνήσαμε τα πάντα για τους πίνακες και τις μονές διαστάσεις στο προηγούμενο σεμινάριό μας.
Σε αυτό το σεμινάριο, θα μάθουμε λεπτομερώς για τις Πολυδιάστατες Πίνακες και τις Διαγραμμένες Πίνακες στο C # αναλυτικά μαζί με παραδείγματα.
=> Εξερευνήστε τα εκπαιδευτικά μας εκπαιδευτικά σε βάθος C # εδώ
Τι θα μάθετε:
C # Πολυδιάστατες συστοιχίες
Οι πολυδιάστατες συστοιχίες είναι επίσης γνωστές ως ορθογώνιες συστοιχίες. Οι πολυδιάστατες συστοιχίες μπορούν να ταξινομηθούν περαιτέρω σε δύο ή τρισδιάστατες συστοιχίες.
Σε αντίθεση με μονοδιάστατες συστοιχίες όπου τα δεδομένα αποθηκεύονται με διαδοχικό τρόπο επένδυσης, ένας πολυδιάστατος πίνακας αποθηκεύει δεδομένα σε μορφή πίνακα, δηλαδή με τη μορφή σειρών και στηλών. Αυτή η διάταξη δεδομένων σε πίνακα είναι επίσης γνωστή ως μήτρα.
2-διαστατικές συστοιχίες
Η απλούστερη μορφή πολυδιάστατου πίνακα είναι ένας δισδιάστατος πίνακας. Μια δισδιάστατη συστοιχία μπορεί να σχηματιστεί συγκεντρώνοντας πολλές μονοδιάστατες συστοιχίες μαζί. Το παρακάτω σχήμα θα βοηθήσει στην καλύτερη κατανόηση της έννοιας.
Η παραπάνω εικόνα είναι μια γραφική αναπαράσταση του πώς φαίνεται η δισδιάστατη συστοιχία. Δηλώνεται με μια σειρά και μια στήλη. Ως εκ τούτου, κάθε δομικό στοιχείο της δισδιάστατης συστοιχίας θα αποτελείται από το ευρετήριο που αντιπροσωπεύει τον αριθμό σειράς και τον αριθμό στήλης.
Οι πολυδιάστατες συστοιχίες δηλώνονται σαν η μονοδιάστατη συστοιχία με τη μόνη διαφορά να είναι η συμπερίληψη κόμμα μέσα στο τετράγωνο βραχίονα για την αναπαράσταση σειρών, στηλών κ.λπ.
string( , ) strArray = new string(2,2);
Τώρα, ας ρίξουμε μια ματιά σε ένα παράδειγμα για την προετοιμασία ενός δισδιάστατου πίνακα.
Ένας πίνακας 2-D δηλώνεται από
string ( , ) fruitArray = new string (2,2) { {“apple” , “mango”} , /* values for row indexed by 0 */ {“orange”, “banana”} , /* values for row indexed by 1 */ };
Για παράδειγμα, ας πούμε αν το στοιχείο του πίνακα μου έχει τη στήλη 'i' και τη στήλη 'j' τότε μπορούμε να έχουμε πρόσβαση χρησιμοποιώντας τον ακόλουθο πίνακα ευρετηρίου (i, j).
string ( , ) fruitArray = new string (2,2) { {“apple” , “mango”} , /* values for row indexed by 0 */ {“orange”, “banana”} , /* values for row indexed by 1 */ }; /* output for the elements present in array*/ for (int i = 0; i <2; i++) { for (int j = 0; j < 2; j++) { Console.WriteLine('fruitArray({0},{1}) = {2}', i, j, fruitArray(i,j)); } } Console.ReadKey();
Το αποτέλεσμα του ακόλουθου προγράμματος θα είναι:
fruitArray (0,0) = μήλο
fruitArray (0,1) = μάνγκο
fruitArray (1.0) = πορτοκαλί
fruitArray (1,1) = μπανάνα
Εξήγηση:
Το πρώτο μέρος του προγράμματος είναι η δήλωση Array. Δηλώσαμε έναν πίνακα τύπου συμβολοσειράς μεγέθους σειράς 2 και μεγέθους στήλης 2. Στο επόμενο μέρος, προσπαθήσαμε να αποκτήσουμε πρόσβαση στον πίνακα χρησιμοποιώντας βρόχο.
Χρησιμοποιήσαμε ένα ένθετο για βρόχο για πρόσβαση στις τιμές. Το εξωτερικό για βρόχο παρέχει τον αριθμό σειράς, δηλαδή θα ξεκινήσει με τη σειρά «μηδέν» και μετά θα προχωρήσει μπροστά. Το εσωτερικό για βρόχο καθορίζει τον αριθμό της στήλης. Με κάθε αριθμό σειράς που περνά από τον πρώτο για βρόχο, ο δεύτερος για βρόχο θα εκχωρήσει έναν αριθμό στήλης και θα έχει πρόσβαση στα δεδομένα από το κελί.
Στερεωμένες συστοιχίες σε C #
Ένας άλλος τύπος πίνακα που διατίθεται με το C # είναι ένα Jagged Array. Ένας ακανόνιστος πίνακας μπορεί να οριστεί ως πίνακας που αποτελείται από πίνακες. Οι οδοντωτές συστοιχίες χρησιμοποιούνται για την αποθήκευση συστοιχιών αντί για άλλους τύπους δεδομένων.
Μια ακανόνιστη συστοιχία μπορεί να αρχικοποιηθεί χρησιμοποιώντας δύο αγκύλες, όπου η πρώτη αγκύλη υποδηλώνει το μέγεθος της συστοιχίας που ορίζεται και η δεύτερη αγκύλη υποδηλώνει τη διάσταση του πίνακα που πρόκειται να αποθηκευτεί μέσα στην ακανόνιστη συστοιχία.
Διακήρυξη Jagged Array
Όπως συζητήθηκε, ένας ακανόνιστος πίνακας μπορεί να αρχικοποιηθεί με την ακόλουθη σύνταξη:
string( )( ) stringArr = new string(2)( );
Ένας ακανόνιστος πίνακας μπορεί να αποθηκεύσει πολλές συστοιχίες με διαφορετικά μήκη. Μπορούμε να δηλώσουμε έναν πίνακα μήκους 2 και έναν άλλο πίνακα μήκους 5 και και τα δύο μπορούν να αποθηκευτούν στον ίδιο ακανόνιστο πίνακα.
Συμπληρώνοντας το στοιχείο μέσα στο Jagged Array
Ας αρχικοποιήσουμε μια Jagged Array.
arrayJag(0) = new string (2) ; arrayJag(1) = new string (3) ;
Στο παραπάνω παράδειγμα, έχουμε αρχικοποιήσει μια συστοιχία τύπου jagged με το ευρετήριο '0' και '1' που περιέχει μια σειρά μεγεθών που ορίζονται μέσα στην αγκύλη. Το 0ο ευρετήριο περιέχει μια σειρά τύπων συμβολοσειράς μήκους 2 και το ευρετήριο '1' περιέχει έναν πίνακα τύπου συμβολοσειράς μήκους 3.
Έτσι ξεκινήσαμε έναν πίνακα. Ας αρχίσουμε τώρα και βάζουμε τιμές μέσα σε έναν ακανόνιστο πίνακα.
arrayJag(0) = new string (2) {“apple”, “mango”}; arrayJag(1) = new string (3) {“orange”, “banana”, “guava”};
Ως εκ τούτου, όπως φαίνεται στο παραπάνω παράδειγμα, ο ακανόνιστος πίνακας μπορεί επίσης να δηλωθεί με τιμές. Για να προσθέσετε τιμές, τοποθετούμε μια σγουρή αγκύλη μετά τον δηλωμένο πίνακα με τη λίστα τιμών.
Είναι επίσης δυνατό να αρχικοποιήσετε την ακανόνιστη συστοιχία ενώ την δηλώνετε.
Αυτό μπορεί να γίνει χρησιμοποιώντας την ακόλουθη προσέγγιση.
string()() jaggedArray = new string (2)() { new string() {“apple”, “mango”}, new string() {“orange”, “banana”, “guava”} };
Στο παραπάνω παράδειγμα, ορίσαμε μια συστοιχία Jagged με το όνομα 'jaggedArray' με μέγεθος 2 και στη συνέχεια μέσα στο σγουρό βραχίονα ορίσαμε και δηλώσαμε τις συστοιχίες του.
Ανάκτηση δεδομένων από μια Jagged Array
Μέχρι τώρα μάθαμε να βάζουμε δεδομένα μέσα σε έναν πίνακα Jagged. Τώρα, θα συζητήσουμε τη μέθοδο ανάκτησης δεδομένων από μια συστοιχία Jagged. Θα χρησιμοποιήσουμε το ίδιο παράδειγμα που συζητήσαμε νωρίτερα και θα προσπαθήσουμε να ανακτήσουμε όλα τα δεδομένα από αυτόν τον πίνακα.
string()() jaggedArray = new string (2)() { new string() {“apple”, “mango”}, new string() {“orange”, “banana”, “guava”} }; /* retrieve value from each array element */ for (int i = 0; i Το αποτέλεσμα του ακόλουθου προγράμματος θα είναι:
μάνγκο μήλου
γκουάβα πορτοκαλιού μπανάνας
Εξήγηση:
τι είναι ένα δέντρο αποφάσεων στην εξόρυξη δεδομένων
Χρησιμοποιήσαμε δύο για βρόχους για να περάσουν στα στοιχεία. Το πρώτο για βρόχο καθόρισε το ευρετήριο για τον πίνακα Jagged. Ένα άλλο ένθετο για βρόχο χρησιμοποιήθηκε για να εγκάρσια μέσω του πίνακα που υπάρχει στο δεδομένο jagged index index, και στη συνέχεια εκτυπώσαμε το αποτέλεσμα στην κονσόλα.
Σημεία που πρέπει να θυμάστε:
- Ένας ακανόνιστος πίνακας είναι ένας πίνακας συστοιχιών. δηλαδή αποθηκεύει πίνακες ως τιμές.
- Ο ακανόνιστος πίνακας θα απομακρυνθεί από την εξαίρεση εύρους εάν δεν υπάρχει το καθορισμένο ευρετήριο.
συμπέρασμα
Σε αυτό το σεμινάριο, μάθαμε για τις Jagged και πολυδιάστατες συστοιχίες στο C #. Μάθαμε πώς να δηλώνουμε και να αρχικοποιούμε έναν δισδιάστατο πίνακα. Δημιουργήσαμε επίσης ένα απλό πρόγραμμα για την ανάκτηση δεδομένων από έναν δισδιάστατο πίνακα.
Στη συνέχεια, συζητήσαμε λεπτομερώς για τον πίνακα Jagged, που είναι ένας πίνακας συστοιχιών.
Ένας πίνακας Jagged είναι μοναδικός από μόνος του καθώς αποθηκεύει πίνακες ως τιμές. Οι οδοντωτές συστοιχίες είναι αρκετά παρόμοιες με άλλες συστοιχίες με τη μόνη διαφορά να είναι ο τύπος της τιμής που αποθηκεύει.
=> ΔΩΡΕΑΝ C # Εκπαιδευτικά σεμινάρια για όλους
Συνιστώμενη ανάγνωση
- Πίνακες σε STL
- C # Array: Πώς να δηλώσετε, να ξεκινήσετε και να αποκτήσετε πρόσβαση σε μια σειρά στο C #;
- Πολυδιάστατες συστοιχίες σε C ++
- Πίνακες C ++ με παραδείγματα
- Χρήση συστοιχιών με λειτουργίες στο C ++
- Πίνακες VBScript: Χρήση συναρτήσεων DIM, REDIM, Split και Ubound Array
- Εισαγωγή πολλαπλών εγγράφων στο MongoDB χρησιμοποιώντας πίνακες
- Java DataTypes, Loops, Arrays, Switch και Assertions