Arrays vs Lists: Σύγκριση χρήσης στο C#

Arrays Vs Lists Synkrise Chreses Sto C



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

Δήλωση:

Οι πίνακες δηλώνονται χρησιμοποιώντας το 'type[] ArrayName;' σύνταξη όπου ο τύπος υποδηλώνει τον τύπο των μελών της συλλογής πίνακα και το 'ArrName' είναι ο τίτλος που εκχωρείται στον πίνακα. Μια δήλωση ενός πίνακα συμβολίζεται με αγκύλες [].

τύπος [ ] Όνομα πίνακα = νέου τύπου [ ] ;

Οι λίστες δηλώνονται χρησιμοποιώντας το 'List LsName;' σύνταξη όπου ο τύπος αντιπροσωπεύει τον τύπο δεδομένων των στοιχείων στη λίστα και το 'LsName' είναι το όνομα που δίνεται στη λίστα. Οι γωνιακές αγκύλες <τύπος> υποδεικνύουν ότι πρόκειται για δήλωση γενικού τύπου.







Λίστα < τύπος > λίστα ονομάτων = νέα λίστα < τύπος > ( ) ;

Αρχικοποίηση:

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



τύπος [ ] Όνομα πίνακα = { v1 , v2 , v3 , ... } ;

Λίστα < τύπος > λίστα ονομάτων = νέα λίστα < τύπος > { v1 , v2 , v3 , ... } ;

Προσθήκη αξιών:

Είναι σημαντικό να θυμάστε ότι οι πίνακες C# έχουν συγκεκριμένο μέγεθος. Εάν απαιτείται διαφορετικό μέγεθος, πρέπει να δημιουργηθεί ένας νέος πίνακας 'newArr' με το επιθυμητό μέγεθος (τρέχον μήκος + αριθμός νέων τιμών). Προσθέστε τον αρχικό πίνακα 'OrgArr' στον νέο πίνακα και αντιστοιχίστε τις νέες τιμές στις νέες θέσεις του νέου πίνακα και ενημερώστε την αναφορά στον νέο πίνακα.



Πίνακας. αντίγραφο ( OrgArr , newArr , OrgArr. Μήκος ) ;

newArr [ OrgArr. Μήκος ] = 14 ; // νέα τιμή

newArr [ OrgArr. Μήκος + 1 ] = 2 ; // νέα τιμή

OrgArr = newArr ; // Ενημερώστε την αναφορά int[] NewArr = new int[OrgArr.Length + 2];

Οι λίστες προσφέρουν ευελιξία όσον αφορά τη διαχείριση μεγέθους. Όταν μια λίστα προετοιμάζεται, ξεκινά με μια αρχική χωρητικότητα, αλλά μπορεί να επεκταθεί αυτόματα καθώς προστίθενται περισσότερα στοιχεία. Αυτή η δυνατότητα δυναμικής αλλαγής μεγέθους επιτρέπει στις λίστες να προσαρμόζονται στις μεταβαλλόμενες απαιτήσεις. Οι λίστες C# παρέχουν μια συνάρτηση Add() για να προσθέσετε τις τιμές στη λίστα. Δείτε πώς μπορείτε να προσθέσετε τιμές σε μια λίστα C#:





Πίνακες vs Λίστες : Σύγκριση χρήσης στο C #

Πρόσβαση στις Αξίες

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

στοιχείο τύπου = Όνομα πίνακα [ δείκτης ] ;

Για να αποκτήσετε πρόσβαση στις τιμές σε μια λίστα C#, μπορείτε επίσης να χρησιμοποιήσετε τον συμβολισμό ευρετηρίου [] μαζί με την επιθυμητή θέση ευρετηρίου παρόμοια με τους πίνακες.



στοιχείο τύπου = Λίστα ονομάτων [ δείκτης ] ;

Αφαίρεση των τιμών

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

λίστα ονομάτων. Αφαιρώ ( στοιχείο ) ;

Μετρήστε τις Αξίες

Για να μετρήσετε τις τιμές σε έναν πίνακα C#, μπορείτε να χρησιμοποιήσετε το χαρακτηριστικό μήκος του πίνακα. Η ιδιότητα length σας δίνει τον συνολικό αριθμό των τιμών στον πίνακα.

ενθ μετρώ = Όνομα πίνακα. Μήκος ;

Για να μετρήσετε τις τιμές σε μια λίστα C#, μπορείτε να χρησιμοποιήσετε τη λειτουργία 'count' της λίστας. Ο συνολικός αριθμός στοιχείων που βρίσκονται αυτήν τη στιγμή στη λίστα επιστρέφεται επίσης από το χαρακτηριστικό 'count'.

ενθ μετρώ = λίστα ονομάτων. μετρώ ;

Επαναλάβετε τις αξίες

Για να επαναλάβετε τις τιμές σε έναν πίνακα C#, μπορείτε να χρησιμοποιήσετε έναν βρόχο 'για' με το μήκος του πίνακα ως συνθήκη βρόχου.

Για ( ενθ Εγώ = 0 ; Εγώ < Όνομα πίνακα. Μήκος ; Εγώ ++ ) {

τύπος ε = Όνομα πίνακα [ Εγώ ] ;

Κονσόλα. WriteLine ( είναι ) ;

}

Για να επαναλάβετε τις τιμές σε μια λίστα C#, μπορείτε να χρησιμοποιήσετε έναν βρόχο 'foreach', καθώς απλοποιεί τη διαδικασία επανάληψης επαναλαμβάνοντας αυτόματα τα στοιχεία.

για κάθε ( πληκτρολογήστε e στο listName ) {

Κονσόλα. WriteLine ( είναι ) ;

}

Παράδειγμα 1: Πίνακες C#

Ο δεδομένος κώδικας δηλώνει και αρχικοποιεί έναν ακέραιο πίνακα με το όνομα 'Arr' με μήκος 5 και εκχωρεί τις τιμές στα στοιχεία του. Οι τιμές που έχουν εκχωρηθεί στα στοιχεία του πίνακα είναι 11, 12, 13, 14 και 15. Στη συνέχεια, ο κώδικας προχωρά στην εμφάνιση των στοιχείων του πίνακα χρησιμοποιώντας έναν βρόχο 'for'. Κάθε στοιχείο εμφανίζεται σε μια ξεχωριστή γραμμή χρησιμοποιώντας τη μέθοδο Console.WriteLine().

Μετά την εμφάνιση των αρχικών στοιχείων, ο κώδικας τροποποιεί το στοιχείο στο ευρετήριο 2, εκχωρώντας του μια νέα τιμή 10. Στη συνέχεια, ο κώδικας εμφανίζει τον τροποποιημένο πίνακα επαναλαμβάνοντας ξανά τα στοιχεία χρησιμοποιώντας έναν βρόχο «για». Τέλος, ο κώδικας εμφανίζει τον συνολικό αριθμό των τιμών που βρίσκονται στον πίνακα χρησιμοποιώντας την ιδιότητα 'Arr.Length' που αποδίδει το μήκος του πίνακα.

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

κατηγορίας Dummy {

στατικός κενός Κύριος ( ) {

ενθ [ ] Arr = νέος ενθ [ 5 ] { έντεκα , 12 , 13 , 14 , δεκαπέντε } ;

Κονσόλα. WriteLine ( 'Στοιχεία:' ) ;

Για ( ενθ Εγώ = 0 ; Εγώ < Arr. Μήκος ; Εγώ ++ )

{

Κονσόλα. WriteLine ( Arr [ Εγώ ] ) ;

}

Arr [ 2 ] = 10 ;

Κονσόλα. WriteLine ( 'Τροποποιημένος πίνακας:' ) ;

Για ( ενθ Εγώ = 0 ; Εγώ < Arr. Μήκος ; Εγώ ++ )

{

Κονσόλα. WriteLine ( Arr [ Εγώ ] ) ;

}

Κονσόλα. WriteLine ( 'Αριθμός στοιχείων: ' + Arr. Μήκος ) ;

}

}

Παράδειγμα 2: Λίστες C#

Ο παρακάτω παρεχόμενος κώδικας δείχνει τη χρήση μιας λίστας C# για την αποθήκευση και το χειρισμό μιας συλλογής ακεραίων. Πρώτον, ο κώδικας αρχικοποιεί μια λίστα με το όνομα 'Arr' με πέντε ακέραιους: 11, 12, 13, 14 και 15. Αυτό επιτυγχάνεται χρησιμοποιώντας την κλάση List και τον κατασκευαστή της μαζί με μια σύνταξη αρχικοποιητή.

Στη συνέχεια, το πρόγραμμα εκτυπώνει το μήνυμα 'Elements:' και προχωρά στην επανάληψη σε κάθε στοιχείο της λίστας χρησιμοποιώντας έναν βρόχο 'foreach'. Κατά τη διάρκεια κάθε επανάληψης, το τρέχον στοιχείο εκτυπώνεται στην κονσόλα χρησιμοποιώντας τη μέθοδο Console.WriteLine().

Στη συνέχεια, ο κωδικός τροποποιεί την τιμή στο ευρετήριο 2 της λίστας εκχωρώντας του την τιμή 10 (Arr[2] = 10). Αυτή η γραμμή αλλάζει το τρίτο στοιχείο στη λίστα από 13 σε 10. Μετά την τροποποίηση, το πρόγραμμα εκτυπώνει ξανά το μήνυμα 'Τροποποιημένη λίστα:' και επαναλαμβάνει την ενημερωμένη λίστα, εκτυπώνοντας κάθε στοιχείο στην κονσόλα. Στη συνέχεια, ο κωδικός εμφανίζει τον αριθμό των τιμών στη λίστα χρησιμοποιώντας το 'Arr.Count'. Αυτή η ιδιότητα επιστρέφει το πλήθος των στοιχείων που υπάρχουν στη λίστα, το οποίο, στο παρακάτω σενάριο, τυχαίνει να είναι 5.

Τέλος, ο κώδικας αφαιρεί το στοιχείο με την τιμή 4 από τη λίστα χρησιμοποιώντας τη μέθοδο Arr.Remove(4). Αυτή η μέθοδος αναζητά την καθορισμένη τιμή στη λίστα και καταργεί την πρώτη εμφάνισή της. Τέλος, το πρόγραμμα εκτυπώνει το μήνυμα «Λίστα μετά την αφαίρεση:» και επαναλαμβάνει τη λίστα για άλλη μια φορά, εμφανίζοντας κάθε στοιχείο που απομένει μετά την εργασία αφαίρεσης.

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

χρησιμοποιώντας το Σύστημα. Συλλογές . Γενικός ;

κατηγορίας Dummy {

στατικός κενός Κύριος ( ) {

Λίστα < ενθ > Arr = νέα λίστα < ενθ > ( ) { έντεκα , 12 , 13 , 14 , δεκαπέντε } ;

Κονσόλα. WriteLine ( 'Στοιχεία:' ) ;

για κάθε ( ενθ n σε Arr )

{

Κονσόλα. WriteLine ( n ) ;

}

Arr [ 2 ] = 10 ;

Κονσόλα. WriteLine ( 'Τροποποιημένη λίστα:' ) ;

για κάθε ( ενθ n σε Arr )

{

Κονσόλα. WriteLine ( n ) ;

}

Κονσόλα. WriteLine ( 'Αριθμός στοιχείων: ' + Arr. μετρώ ) ;

Arr. Αφαιρώ ( 4 ) ;

Κονσόλα. WriteLine ( 'Λίστα μετά την αφαίρεση:' ) ;

για κάθε ( ενθ n σε Arr )

{

Κονσόλα. WriteLine ( n ) ;

}

}

}

συμπέρασμα

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