Πώς να αρχικοποιήσετε πίνακες σε C#

Pos Na Archikopoiesete Pinakes Se C



Στην C#, οι πίνακες χρησιμεύουν ως κοντέινερ για την αποθήκευση στοιχείων του ίδιου τύπου δεδομένων. Κατά τη δημιουργία ενός πίνακα, υπάρχουν πολλές προσεγγίσεις για την προετοιμασία του με στοιχεία. Αυτό το άρθρο εμβαθύνει στις διάφορες μεθόδους προετοιμασίας πινάκων σε C#, παρέχοντας μια ολοκληρωμένη εξερεύνηση κάθε προσέγγισης.

Μέθοδοι για την εκκίνηση πινάκων σε C#

Οι πίνακες είναι μια βασική δομή δεδομένων στον προγραμματισμό υπολογιστών που σας επιτρέπει να αποθηκεύετε και να χειρίζεστε μια συλλογή στοιχείων του ίδιου τύπου δεδομένων σε συνεχόμενες θέσεις μνήμης. Ακολουθούν μερικοί τρόποι για να αρχικοποιήσετε τους πίνακες στο C#:







1: Εκκίνηση πινάκων με χρήση της σύνταξης του Array Initializer

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



ενθ [ ] αριθμοί = { 1 , 2 , 3 , 4 , 5 } ;


Σε αυτόν τον κώδικα, δημιουργείται ένας ακέραιος πίνακας με το όνομα 'numbers' και αρχικοποιείται με τις τιμές 1 έως 5. Ομοίως, μπορείτε να χρησιμοποιήσετε την ίδια σύνταξη για να αρχικοποιήσετε έναν πολυδιάστατο πίνακα.



ενθ [ , ] myMultiDimensionalArray = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;


Ακολουθεί ένα παράδειγμα κώδικα που χρησιμοποιεί τη σύνταξη του αρχικοποιητή για να προετοιμάσει έναν πίνακα 1D και 2D στη C#:





χρησιμοποιώντας το σύστημα.

πίνακας τάξης
{
στατικό κενό Κύριο ( σειρά [ ] args )
{
// Εκκίνηση ενός πίνακα 1D χρησιμοποιώντας τη σύνταξη του αρχικοποιητή
ενθ [ ] πίνακας1D = { 1 , 2 , 3 , 4 , 5 } ;
Κονσόλα.WriteLine ( 'Τιμές στον πίνακα 1D:' ) ;
Για ( int i = 0 ; Εγώ < array1D.Length; i++ ) {
Κονσόλα.WriteLine ( πίνακας 1D [ Εγώ ] ) ;
}
// Εκκίνηση ενός πίνακα 2D χρησιμοποιώντας τη σύνταξη του αρχικοποιητή
ενθ [ , ] array2D = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
Κονσόλα.WriteLine ( 'Τιμές στο array2D:' ) ;
Για ( int i = 0 ; Εγώ < array2D.GetLength ( 0 ) ; i++ ) {
Για ( int j = 0 ; ι < array2D.GetLength ( 1 ) ; j++ ) {
Κονσόλα.WriteLine ( '({0}, {1}): {2}' , i, j, array2D [ i, j ] ) ;
}
}
}
}


Σε αυτόν τον κώδικα, χρησιμοποιούμε τη σύνταξη του αρχικοποιητή για να αρχικοποιήσουμε έναν μονοδιάστατο ακέραιο πίνακα που ονομάζεται array1D με τις τιμές 1, 2, 3, 4 και 5.

Χρησιμοποιούμε επίσης τη σύνταξη αρχικοποιητή για να αρχικοποιήσουμε έναν δισδιάστατο ακέραιο πίνακα που ονομάζεται array2D με τις τιμές {1, 2}, {3, 4} και {5, 6}.



Στη συνέχεια, χρησιμοποιούμε πρόσθετους βρόχους για να επαναλάβουμε κάθε στοιχείο κάθε πίνακα και να εκτυπώσουμε την τιμή του στην κονσόλα.

2: Εκκίνηση πινάκων με χρήση της νέας λέξης-κλειδιού

Μια πρόσθετη μέθοδος για την προετοιμασία ενός πίνακα περιλαμβάνει τη χρήση του νέος λέξη-κλειδί. Αυτό περιλαμβάνει τον καθορισμό του μεγέθους του πίνακα σε αγκύλες, ακολουθούμενο από τη νέα λέξη-κλειδί και, στη συνέχεια, τον τύπο δεδομένων των στοιχείων του πίνακα. Για παράδειγμα:

ενθ [ ] αριθμοί = νέος ενθ [ 5 ] ;


Αυτός ο κώδικας δημιουργεί έναν ακέραιο πίνακα με όνομα αριθμοί με μέγεθος 5 και αρχικοποιεί όλα τα στοιχεία στην προεπιλεγμένη τιμή τους, η οποία είναι 0 για ακέραιους πίνακες.

Ακολουθεί η σύνταξη για την προετοιμασία ενός πολυδιάστατου πίνακα χρησιμοποιώντας τη νέα λέξη-κλειδί στο C#:

< τύπος > [ , ] < Όνομα πίνακα > = νέος < τύπος > [ < μήκος 1 > , < μήκος 2 > ,... ] { { < αρχικές τιμές > } } ;


Σε αυτήν τη σύνταξη, είναι ο τύπος δεδομένων των στοιχείων του πίνακα, είναι το όνομα του πίνακα, , και ούτω καθεξής είναι τα μήκη του πίνακα σε κάθε διάσταση και είναι οι αρχικές τιμές των στοιχείων του πίνακα.

Ακολουθεί ένα παράδειγμα του τρόπου χρήσης αυτής της σύνταξης για την προετοιμασία ενός δισδιάστατου πίνακα ακεραίων:

ενθ [ , ] myArray = νέος ενθ [ 3 , 2 ] { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;


Σε αυτό το παράδειγμα, αρχικοποιούμε έναν 2d ακέραιο πίνακα που ονομάζεται myArray με 3 σειρές και 2 στήλες χρησιμοποιώντας τη νέα λέξη-κλειδί. Παρέχουμε επίσης αρχικές τιμές για κάθε στοιχείο του πίνακα χρησιμοποιώντας τη σύνταξη των διπλών αγκύλων. Οι τιμές είναι {1, 2}, {3, 4} και {5, 6}, που αντιστοιχούν στα στοιχεία σε κάθε σειρά.

Ακολουθεί ένα παράδειγμα του τρόπου χρήσης της νέας λέξης-κλειδιού για την προετοιμασία τόσο ενός μονοδιάστατου όσο και ενός δισδιάστατου πίνακα σε C#, μαζί με κώδικα για την εκτύπωση των τιμών σε κάθε πίνακα:

χρησιμοποιώντας το σύστημα.

πίνακας τάξης
{
στατικό κενό Κύριο ( σειρά [ ] args )
{
// Αρχικοποίηση α 1 - συστοιχία διαστάσεων
ενθ [ ] myArray1D = new int [ ] { 1 , 2 , 3 , 4 , 5 } ;
Κονσόλα.WriteLine ( 'Τιμές στο myArray1D:' ) ;
Για ( int i = 0 ; Εγώ < myArray1D.Length; i++ )
{
Κονσόλα.WriteLine ( myArray1D [ Εγώ ] ) ;
}
// Αρχικοποίηση α 2 - συστοιχία διαστάσεων
ενθ [ , ] myArray2D = new int [ , ] { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
Κονσόλα.WriteLine ( 'Τιμές στο myArray2D:' ) ;
Για ( int i = 0 ; Εγώ < myArray2D.GetLength ( 0 ) ; i++ )
{
Για ( int j = 0 ; ι < myArray2D.GetLength ( 1 ) ; j++ )
{
Κονσόλα.WriteLine ( '({0}, {1}): {2}' , i, j, myArray2D [ i, j ] ) ;
}
}
}
}


Σε αυτόν τον κώδικα, χρησιμοποιούμε τη νέα λέξη-κλειδί για να αρχικοποιήσουμε έναν μονοδιάστατο ακέραιο πίνακα που ονομάζεται myArray1D με τις τιμές 1, 2, 3, 4 και 5 και έναν δισδιάστατο ακέραιο πίνακα που ονομάζεται myArray2D με τις τιμές {1, 2}, {3, 4} και {5, 6}.

Στη συνέχεια, χρησιμοποιούμε βρόχους για να επαναλάβουμε κάθε στοιχείο κάθε πίνακα και να εκτυπώσουμε την τιμή του στην κονσόλα. Σημειώστε ότι για τον δισδιάστατο πίνακα, χρησιμοποιούμε GetLength() για να προσδιορίσετε τον αριθμό των γραμμών και στηλών και χρησιμοποιώντας ένθετους βρόχους για επανάληψη σε κάθε στοιχείο.

3: Εκκίνηση πινάκων με χρήση βρόχων

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

ενθ [ ] αριθμοί = νέος ενθ [ 5 ] ;
Για ( int i = 0 ; Εγώ < αριθμοί.Μήκος; i++ )
{
αριθμοί [ Εγώ ] = εγώ + 1 ;
}


Αυτός ο κώδικας δημιουργεί έναν ακέραιο πίνακα με όνομα αριθμούς με μέγεθος 5 και εκχωρεί σε κάθε στοιχείο μια τιμή ίση με τον δείκτη του συν 1. Ακολουθεί ένα παράδειγμα για το πώς να αρχικοποιήσετε έναν δισδιάστατο πίνακα ακέραιων αριθμών στη C# χρησιμοποιώντας βρόχους:

ενθ [ , ] myArray = νέος ενθ [ 3 , 2 ] ;
Για ( int i = 0 ; Εγώ < 3 ; i++ )
{
Για ( int j = 0 ; ι < 2 ; j++ )
{
myArray [ i, j ] = i + j;
}
}


Σε αυτό το παράδειγμα, χρησιμοποιούμε ένθετους βρόχους για να επαναλάβουμε κάθε στοιχείο ενός δισδιάστατου πίνακα ακεραίων που ονομάζεται myArray , το οποίο έχει 3 σειρές και 2 στήλες. Για κάθε στοιχείο, ορίζουμε την τιμή του στο άθροισμα των δεικτών σειρών και στηλών του χρησιμοποιώντας την έκφραση i + j.

Ακολουθεί ένα παράδειγμα του τρόπου χρήσης βρόχων για την προετοιμασία τόσο ενός μονοδιάστατου όσο και ενός δισδιάστατου πίνακα στη C#, μαζί με κώδικα για την εκτύπωση των τιμών σε κάθε πίνακα:

χρησιμοποιώντας το σύστημα.

πίνακας τάξης
{
στατικό κενό Κύριο ( σειρά [ ] args )
{
// Αρχικοποίηση α 1 -διαστατικός πίνακας με χρήση βρόχου
ενθ [ ] myArray1D = new int [ 5 ] ;
Για ( int i = 0 ; Εγώ < myArray1D.Length; i++ )
{
myArray1D [ Εγώ ] = εγώ + 1 ;
}
Κονσόλα.WriteLine ( 'Τιμές στο myArray1D:' ) ;
Για ( int i = 0 ; Εγώ < myArray1D.Length; i++ )
{
Κονσόλα.WriteLine ( myArray1D [ Εγώ ] ) ;
}
// Αρχικοποίηση α 2 -διαστατικός πίνακας με χρήση ένθετων βρόχων
ενθ [ , ] myArray2D = new int [ 3 , 2 ] ;
Για ( int i = 0 ; Εγώ < 3 ; i++ )
{
Για ( int j = 0 ; ι < 2 ; j++ )
{
myArray2D [ i, j ] = i + j;
}
}
Κονσόλα.WriteLine ( 'Τιμές στο myArray2D:' ) ;
Για ( int i = 0 ; Εγώ < 3 ; i++ )
{
Για ( int j = 0 ; ι < 2 ; j++ )
{
Κονσόλα.WriteLine ( '({0}, {1}): {2}' , i, j, myArray2D [ i, j ] ) ;
}
}
}
}


Σε αυτόν τον κώδικα, χρησιμοποιούμε έναν βρόχο for για να αρχικοποιήσουμε έναν 1-διάστατο πίνακα ακέραιων αριθμών που ονομάζεται myArray1D με τις τιμές 1, 2, 3, 4 και 5. Χρησιμοποιούμε επίσης ένθετους βρόχους για να αρχικοποιήσουμε έναν δισδιάστατο πίνακα ακεραίων που ονομάζεται myArray2D με τις τιμές {0, 1}, {1, 2} και {2, 3} χρησιμοποιώντας την έκφραση i + j.

Στη συνέχεια, χρησιμοποιήστε πρόσθετους βρόχους for για να επαναλάβετε κάθε στοιχείο κάθε πίνακα και να εκτυπώσετε την τιμή του στην κονσόλα.

4: Εκκίνηση πινάκων με χρήση Array.Copy()

Μια εναλλακτική προσέγγιση για την προετοιμασία ενός πίνακα περιλαμβάνει τη χρήση της συνάρτησης Array.Copy(). Αυτό περιλαμβάνει τη δημιουργία ενός πίνακα προέλευσης με τα επιθυμητά στοιχεία και στη συνέχεια την αντιγραφή τους σε έναν πίνακα στόχο. Για παράδειγμα:

ενθ [ ] πηγή = { 1 , 2 , 3 , 4 , 5 } ;
ενθ [ ] στόχος = νέος ενθ [ πηγή.Μήκος ] ;
Πίνακας.Αντιγραφή ( πηγή , στόχος, πηγή.Μήκος ) ;


Αυτός ο κώδικας δημιουργεί έναν ακέραιο πίνακα με όνομα πηγή με τις τιμές 1 έως 5, δημιουργεί έναν νέο ακέραιο πίνακα με το όνομα target με το ίδιο μέγεθος με τον προέλευση και, στη συνέχεια, αντιγράφει τα στοιχεία από πηγή σε στόχο.

Επιτρέψτε μου να παρουσιάσω ένα παράδειγμα που δείχνει τη χρήση του Array.Copy για την προετοιμασία ενός δισδιάστατου πίνακα ακεραίων στη C#:

ενθ [ , ] sourceArray = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
ενθ [ , ] destinationArray = νέος ενθ [ 3 , 2 ] ;

Πίνακας.Αντιγραφή ( SourceArray, DestinationArray, sourceArray.Length ) ;


Σε αυτό το παράδειγμα, έχουμε έναν δισδιάστατο ακέραιο πίνακα που ονομάζεται sourceArray με 3 σειρές και 2 στήλες. Χρησιμοποιούμε Array.Copy() για να αντιγράψετε τα περιεχόμενα του sourceArray σε έναν νέο δισδιάστατο ακέραιο πίνακα που ονομάζεται DestinationArray, ο οποίος έχει επίσης 3 σειρές και 2 στήλες.

ο Array.Copy() η μέθοδος παίρνει τρία επιχειρήματα : ο πίνακας πηγών , ο συστοιχία προορισμού , και το μήκος των δεδομένων που πρέπει να αντιγραφούν. Σε αυτήν την περίπτωση, αντιγράφουμε ολόκληρο το περιεχόμενο του sourceArray σε προορισμόΣειρά , άρα περνάμε sourceArray.Length ως τρίτο επιχείρημα.

Σημειώστε ότι μπορείτε να χρησιμοποιήσετε Array.Copy() για την προετοιμασία πινάκων με οποιονδήποτε αριθμό διαστάσεων, εφόσον οι πίνακες προέλευσης και προορισμού έχουν τον ίδιο αριθμό διαστάσεων και το ίδιο μέγεθος σε κάθε διάσταση.

Επίσης, να έχετε κατά νου ότι Array.Copy() εκτελεί ένα ρηχό αντίγραφο του πίνακα προέλευσης, πράγμα που σημαίνει ότι εάν ο πίνακας προέλευσης περιέχει τύπους αναφοράς, οι αναφορές θα αντιγραφούν αλλά τα ίδια τα αντικείμενα δεν θα αντιγραφούν.

Εδώ είναι ο πλήρης κώδικας που χρησιμοποιεί Array.Copy() συνάρτηση για την προετοιμασία του πίνακα σε C#:

χρησιμοποιώντας το σύστημα.

πίνακας τάξης
{
στατικό κενό Κύριο ( σειρά [ ] args )
{
// Αρχικοποίηση α 1 -διάστατος πίνακας χρησιμοποιώντας Array.Copy
ενθ [ ] sourceArray1D = { 1 , 2 , 3 , 4 , 5 } ;
ενθ [ ] destinationArray1D = νέος ενθ [ 5 ] ;
Πίνακας.Αντιγραφή ( sourceArray1D, destinationArray1D, sourceArray1D.Length ) ;
Κονσόλα.WriteLine ( 'Τιμές στον προορισμόArray1D:' ) ;
Για ( int i = 0 ; Εγώ < DestinationArray1D.Length; i++ ) {
Κονσόλα.WriteLine ( destinationArray1D [ Εγώ ] ) ;
}
// Αρχικοποίηση α 2 -διάστατος πίνακας χρησιμοποιώντας Array.Copy
ενθ [ , ] sourceArray2D = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
ενθ [ , ] destinationArray2D = νέος ενθ [ 3 , 2 ] ;
Πίνακας.Αντιγραφή ( sourceArray2D, destinationArray2D, sourceArray2D.Length ) ;
Κονσόλα.WriteLine ( 'Τιμές στον προορισμόArray2D:' ) ;
Για ( int i = 0 ; Εγώ < destinationArray2D.GetLength ( 0 ) ; i++ ) {
Για ( int j = 0 ; ι < destinationArray2D.GetLength ( 1 ) ; j++ ) {
Κονσόλα.WriteLine ( '({0}, {1}): {2}' , i, j, destinationArray2D [ i, j ] ) ;
}
}
}
}


Σε αυτόν τον κώδικα, χρησιμοποιούμε Array.Copy() για να αρχικοποιήσετε έναν 1-διάστατο πίνακα ακέραιων αριθμών που ονομάζεται DestinationArray1D με τις τιμές 1, 2, 3, 4 και 5 από έναν πίνακα πηγής που ονομάζεται sourceArray1D.

Χρησιμοποιούμε επίσης Array.Copy() για να αρχικοποιήσετε έναν δισδιάστατο πίνακα ακέραιων αριθμών που ονομάζεται destinationArray2D με τις τιμές {1, 2}, {3, 4} και {5, 6} από έναν πίνακα πηγής που ονομάζεται sourceArray2D.

Στη συνέχεια, χρησιμοποιούμε πρόσθετους βρόχους for για να επαναλάβουμε κάθε στοιχείο κάθε πίνακα και να εκτυπώσουμε την τιμή του στην κονσόλα.

συμπέρασμα

Σε αυτό το άρθρο, εξερευνήσαμε διαφορετικούς τρόπους προετοιμασίας πινάκων σε C#. Καλύψαμε τη σύνταξη του αρχικοποιητή πίνακα, χρησιμοποιώντας τη νέα λέξη-κλειδί, αρχικοποιώντας πίνακες χρησιμοποιώντας βρόχους και χρησιμοποιώντας τη μέθοδο Array.Copy(). Ανάλογα με τη συγκεκριμένη περίπτωση χρήσης, καθεμία από αυτές τις μεθόδους έχει τα δικά της πλεονεκτήματα και μειονεκτήματα. Η εξοικείωση με αυτές τις διαφορετικές προσεγγίσεις θα σας επιτρέψει να επιλέξετε την καταλληλότερη για τις ιδιαίτερες απαιτήσεις σας.