C# Array Tutorial: Δημιουργία, Δήλωση, Εκκίνηση
⚡ Έξυπνη Σύνοψη
Οι πίνακες C# αποθηκεύουν μια συλλογή στοιχείων σταθερού μεγέθους που μοιράζονται τον ίδιο τύπο δεδομένων κάτω από ένα όνομα μεταβλητής. Κάθε στοιχείο βρίσκεται σε έναν δείκτη που βασίζεται στο μηδέν, επομένως η δήλωση, η αρχικοποίηση και η πρόσβαση σε τιμές παραμένει γρήγορη και προβλέψιμη.

Τι είναι ένας πίνακας στο C#;
Ένας πίνακας χρησιμοποιείται για την αποθήκευση μιας συλλογής ή μιας σειράς στοιχείων. Αυτά τα στοιχεία θα είναι του ίδιου τύπου.
Έτσι, για παράδειγμα, εάν είχατε έναν πίνακα με τιμές ακέραιου αριθμού, ο πίνακας θα μπορούσε να είναι μια συλλογή τιμών όπως [1, 2, 3, 4]. Εδώ ο αριθμός των στοιχείων στον πίνακα είναι 4.
Οι πίνακες είναι χρήσιμοι όταν θέλετε να αποθηκεύσετε μια συλλογή τιμών του ίδιου τύπου. Αντί λοιπόν να δηλώσετε α μεταβλητή για κάθε στοιχείο, μπορείτε απλώς να δηλώσετε μία μεταβλητή.
Αυτή η μεταβλητή θα δείχνει έναν πίνακα ή μια λίστα στοιχείων, τα οποία θα είναι υπεύθυνα για την αποθήκευση των στοιχείων του πίνακα.
Ας δούμε πώς μπορούμε να δουλέψουμε με πίνακες στη C#. Στο παράδειγμά μας, θα δηλώσουμε έναν πίνακα ακεραίων και θα εργαστούμε με αυτούς ανάλογα.
Σημειώστε ότι όλος ο παρακάτω κώδικας γίνεται στο αρχείο Program.cs.
Βήμα 1) Δήλωση πίνακα – Το πρώτο βήμα είναι να δηλώσετε έναν πίνακα. Ας δούμε πώς μπορούμε να το πετύχουμε αυτό με το παρακάτω παράδειγμα κώδικα.
Code Εξήγηση:-
- Το πρώτο μέρος είναι το Τύπος δεδομένων. Καθορίζει τον τύπο των στοιχείων που χρησιμοποιούνται στον πίνακα. Έτσι, στην περίπτωσή μας, δημιουργούμε έναν πίνακα ακεραίων.
- Το δεύτερο μέρος [ ], το οποίο καθορίζει την κατάταξη του πίνακα. (Η κατάταξη είναι ένα σύμβολο κράτησης θέσης που καθορίζει τον αριθμό των στοιχείων που θα περιέχει ο πίνακας)
- Ακολουθεί το Όνομα του πίνακα που στην περίπτωσή μας είναι 'τιμές'. Σημειώστε ότι βλέπετε μια πράσινη υπογράμμιση, μην ανησυχείτε για αυτό. Αυτό είναι απλώς το .Net που λέει ότι έχετε δηλώσει έναν πίνακα, αλλά δεν τον χρησιμοποιείτε πουθενά.
Βήμα 2) Το επόμενο βήμα είναι η προετοιμασία του πίνακα. Εδώ πρόκειται να καθορίσουμε τον αριθμό των τιμών που θα κρατήσει ο πίνακας. Θα εκχωρήσουμε επίσης τιμές σε κάθε στοιχείο του πίνακα.
Code Εξήγηση:-
- Αρχικά, ορίζουμε τον αριθμό των στοιχείων που θα περιέχει ο πίνακας σε 3. Έτσι, στις αγκύλες, λέμε ότι ο πίνακας θα περιέχει 3 στοιχεία.
- Στη συνέχεια, αντιστοιχίζουμε τιμές σε κάθε στοιχείο του πίνακα. Μπορούμε να το κάνουμε αυτό καθορίζοντας το όνομα της μεταβλητής + τη θέση του δείκτη στον πίνακα. Έτσι, η συνάρτηση values[0] σημαίνει ότι αποθηκεύουμε μια τιμή στην πρώτη θέση του πίνακα. Ομοίως, για να έχουμε πρόσβαση στη δεύτερη θέση, χρησιμοποιούμε τη συμβολισμό values[1] και ούτω καθεξής.
Σημείωση: – Στους Πίνακες, η θέση ευρετηρίου ξεκινά από το 0.
Βήμα 3) Ας εμφανίσουμε τώρα τα μεμονωμένα στοιχεία του πίνακα στην Κονσόλα. Ας προσθέσουμε τον παρακάτω κώδικα για να το πετύχουμε αυτό.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Int32[] value; value=new Int32[3]; value[0]=1; value[1]=2; value[2]=3; Console.WriteLine(value[0]); Console.WriteLine(value[1]); Console.WriteLine(value[2]); Console.ReadKey(); } } }
Code Εξήγηση:-
Αυτό είναι το απλό μέρος όπου χρησιμοποιούμε απλώς τη μέθοδο Console.WriteLine για να στείλουμε κάθε τιμή του στοιχείου στην κονσόλα.
Σημειώστε ότι και πάλι, έχουμε πρόσβαση σε κάθε στοιχείο με τη βοήθεια του ονόματος της μεταβλητής του πίνακα μαζί με τη θέση του ευρετηρίου.
Εάν ο παραπάνω κωδικός εισαχθεί σωστά και το πρόγραμμα εκτελεστεί, θα εμφανιστεί η ακόλουθη έξοδος.
Παραγωγή:
Από την έξοδο, μπορείτε να δείτε όλες τις τιμές του πίνακα που εμφανίζονται στην Κονσόλα.
Πώς να κάνετε επανάληψη σε έναν πίνακα C# χρησιμοποιώντας το foreach
Η ανάγνωση κάθε στοιχείου με βάση τον δείκτη του λειτουργεί, αλλά γίνεται κουραστική όταν ένας πίνακας περιέχει πολλές τιμές. Ο βρόχος foreach προσφέρει έναν πιο καθαρό τρόπο για να επισκεφθείτε κάθε στοιχείο ενός πίνακα με τη σειρά χωρίς tracΡυθμίστε μόνοι σας μια μεταβλητή δείκτη.
Η εντολή foreach λαμβάνει κάθε στοιχείο από τον πίνακα ένα κάθε φορά και το αντιγράφει σε μια μεταβλητή βρόχου. Στη συνέχεια, χρησιμοποιείτε αυτήν τη μεταβλητή μέσα στο σώμα του βρόχου. Επειδή ο βρόχος σταματά αυτόματα στο τελευταίο στοιχείο, το foreach εξαλείφει τον κίνδυνο ανάγνωσης μετά το τέλος του πίνακα.
using System; namespace DemoApplication { class Program { static void Main(string[] args) { Int32[] values = new Int32[3] {1, 2, 3}; foreach (Int32 item in values) { Console.WriteLine(item); } Console.ReadKey(); } } }
Το παραπάνω παράδειγμα δηλώνει και αρχικοποιεί έναν πίνακα τριών ακεραίων αριθμών και στη συνέχεια τον διατρέχει με το foreach. Σε κάθε πέρασμα η μεταβλητή είδος λαμβάνει την επόμενη τιμή και η Console.WriteLine την εκτυπώνει. Η έξοδος είναι οι αριθμοί 1, 2 και 3 σε ξεχωριστές γραμμές.
Βασικά σημεία που πρέπει να θυμάστε σχετικά με το foreach με πίνακες:
- Η μεταβλητή βρόχου είναι μόνο για ανάγνωση, επομένως το foreach είναι καλύτερο για την ανάγνωση τιμών αντί να τις αλλάζει στη θέση τους.
- Για να τροποποιήσετε στοιχεία ενώ κοιτάτεping, χρησιμοποιήστε έναν βρόχο for με ένα ευρετήριο αντ' αυτού.
- Το foreach λειτουργεί με μονοδιάστατους πίνακες, πολυδιάστατους πίνακες και οποιαδήποτε συλλογή που υποστηρίζει επανάληψη.
Πολυδιάστατοι πίνακες C#
Οι πίνακες που εμφανίζονται μέχρι στιγμής είναι μονοδιάστατοι, που σημαίνει ότι αποθηκεύουν μια απλή λίστα τιμών. Η C# υποστηρίζει επίσης πολυδιάστατους πίνακες, οι οποίοι ταξινομούν τα στοιχεία σε ένα πλέγμα γραμμών και στηλών. Ένας δισδιάστατος πίνακας είναι η πιο κοινή μορφή και ταιριάζει σε δεδομένα όπως πίνακες, ταμπλό παιχνιδιών και πίνακες.
Δηλώνετε έναν δισδιάστατο πίνακα τοποθετώντας ένα κόμμα μέσα στις αγκύλες. Κάθε επιπλέον κόμμα προσθέτει μια άλλη διάσταση, επομένως το int[,] είναι δισδιάστατο και το int[,,] είναι τρισδιάστατο. Στη συνέχεια, τα στοιχεία προσεγγίζονται με έναν δείκτη ανά διάσταση.
using System; namespace DemoApplication { class Program { static void Main(string[] args) { int[,] matrix = new int[2, 2] { {1, 2}, {3, 4} }; Console.WriteLine(matrix[0, 0]); Console.WriteLine(matrix[1, 1]); Console.ReadKey(); } } }
Εδώ, ο πίνακας πίνακα περιέχει δύο γραμμές και δύο στήλες. Το στοιχείο matrix[0, 0] επιστρέφει 1 και το matrix[1, 1] επιστρέφει 4. Ο αριθμός των διαστάσεων είναι σταθερός όταν δηλώνεται ο πίνακας, ενώ το μέγεθος κάθε διάστασης ορίζεται όταν δημιουργείται ο πίνακας.
C# Jagged Arrays
Ένας οδοντωτός πίνακας είναι ένας πίνακας του οποίου τα στοιχεία είναι τα ίδια πίνακες. Σε αντίθεση με έναν ορθογώνιο πολυδιάστατο πίνακα, κάθε εσωτερικός πίνακας μπορεί να έχει διαφορετικό μήκος, γι' αυτό και ένας οδοντωτός πίνακας ονομάζεται συχνά πίνακας πινάκων. Αυτή η ευελιξία βοηθά όταν οι γραμμές περιέχουν φυσικά διαφορετικούς αριθμούς τιμών.
Δηλώνετε έναν οδοντωτό πίνακα με δύο σύνολα αγκυλών και, στη συνέχεια, δημιουργείτε κάθε εσωτερικό πίνακα ξεχωριστά. Το ακόλουθο παράδειγμα δημιουργεί έναν οδοντωτό πίνακα όπου η πρώτη γραμμή περιέχει τρεις τιμές και η δεύτερη γραμμή περιέχει δύο.
using System; namespace DemoApplication { class Program { static void Main(string[] args) { int[][] jagged = new int[2][]; jagged[0] = new int[] {1, 2, 3}; jagged[1] = new int[] {4, 5}; Console.WriteLine(jagged[0][2]); Console.WriteLine(jagged[1][1]); Console.ReadKey(); } } }
Η έκφραση jagged[0][2] διαβάζει το τρίτο στοιχείο της πρώτης γραμμής, το οποίο είναι το 3, και η jagged[1][1] διαβάζει το δεύτερο στοιχείο της δεύτερης γραμμής, το οποίο είναι το 5. Επειδή κάθε γραμμή είναι ένας ξεχωριστός πίνακας, οι jagged πίνακες χρησιμοποιούν αποτελεσματικά τη μνήμη όταν τα μήκη των γραμμών ποικίλλουν, αν και χρειάζονται ένα επιπλέον βήμα για την αρχικοποίηση κάθε εσωτερικού πίνακα.




