Εκμάθηση C# ArrayList με παραδείγματα
⚡ Έξυπνη Σύνοψη
Το ArrayList σε C# είναι μια δυναμική συλλογή από τον χώρο ονομάτων System.Collections που αποθηκεύει στοιχεία ως αντικείμενα. Σε αντίθεση με έναν πίνακα, μεγαλώνει και συρρικνώνεται κατά τον χρόνο εκτέλεσης και μπορεί να περιέχει ακέραιους αριθμούς, συμβολοσειρές και λογικές τιμές μαζί σε μία λίστα.

Τι είναι το ArrayList στο C#;
Η συλλογή ArrayList είναι παρόμοια με την Array τύπος δεδομένων σε C#. Η μεγαλύτερη διαφορά είναι η δυναμική φύση της συλλογής λίστας πίνακα.
Για πίνακες, πρέπει να ορίσετε τον αριθμό των στοιχείων που μπορεί να περιέχει ο πίνακας τη στιγμή της δήλωσης του πίνακα. Αλλά στην περίπτωση της συλλογής Array List, αυτό δεν χρειάζεται να γίνει εκ των προτέρων. Τα στοιχεία μπορούν να προστεθούν ή να αφαιρεθούν από τη συλλογή Array List ανά πάσα στιγμή. Ας δούμε τις λειτουργίες που είναι διαθέσιμες για τη συλλογή λίστας πίνακα με περισσότερες λεπτομέρειες.
Δήλωση μιας λίστας πίνακα
Η δήλωση μιας ArrayList παρέχεται παρακάτω. Μια λίστα πίνακα δημιουργείται με τη βοήθεια του τύπου δεδομένων ArrayList. Η λέξη-κλειδί "νέα" χρησιμοποιείται για τη δημιουργία ενός αντικειμένου μιας ArrayList. Στη συνέχεια, το αντικείμενο εκχωρείται στη μεταβλητή a1. Έτσι τώρα η μεταβλητή a1 θα χρησιμοποιηθεί για πρόσβαση στα διάφορα στοιχεία της λίστας πίνακα.
ArrayList a1 = new ArrayList()
Προσθήκη στοιχείων σε έναν πίνακα
Η μέθοδος προσθήκης χρησιμοποιείται για την προσθήκη ενός στοιχείου στη λίστα ArrayList. Η μέθοδος προσθήκης μπορεί να χρησιμοποιηθεί για την προσθήκη οποιουδήποτε είδους στοιχείου τύπου δεδομένων στη λίστα πίνακα. Έτσι, μπορείτε να προσθέσετε έναν ακέραιο ή μια συμβολοσειρά ή ακόμα και μια τιμή Boolean στη λίστα πίνακα. Η γενική σύνταξη της μεθόδου πρόσθεσης δίνεται παρακάτω
ArrayList.add(element)
Παρακάτω είναι μερικά παραδείγματα για το πώς μπορεί να χρησιμοποιηθεί η μέθοδος "προσθήκη". Η μέθοδος προσθήκης μπορεί να χρησιμοποιηθεί για την προσθήκη διαφόρων τύπων δεδομένων στη συλλογή Array List.
Παρακάτω μπορείτε να δείτε παραδείγματα για το πώς μπορούμε να προσθέσουμε ακέραιες συμβολοσειρές και ακόμη και τιμές Boolean στη συλλογή Array List.
- a1.add(1) – Αυτό θα προσθέσει μια ακέραια τιμή στη συλλογή
- a1.add("Παράδειγμα") – Αυτό θα προσθέσει μια τιμή String στη συλλογή
- a1.add(true) – Αυτό θα προσθέσει μια Boolean τιμή στη συλλογή
Τώρα ας δούμε ότι αυτό λειτουργεί σε επίπεδο κώδικα. Όλος ο κώδικας που αναφέρεται παρακάτω θα εγγραφεί στην εφαρμογή Console μας. Ο κώδικας θα γραφτεί στο αρχείο μας Program.cs.
Στο παρακάτω πρόγραμμα, θα γράψουμε τον κώδικα για να δημιουργήσουμε μια νέα λίστα πίνακα. Θα δείξουμε επίσης την προσθήκη στοιχείων και την εμφάνιση των στοιχείων της λίστας Array.
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { ArrayList a1 = new ArrayList(); a1.Add(1); a1.Add("Example"); a1.Add(true); Console.WriteLine(a1[0]); Console.WriteLine(a1[1]); Console.WriteLine(a1[2]); Console.ReadKey(); } } }
Code Εξήγηση:-
- Το πρώτο βήμα χρησιμοποιείται για να δηλώσουμε τη Λίστα Πίνακα. Εδώ δηλώνουμε το a1 ως μεταβλητή για να κρατήσει τα στοιχεία της λίστας του πίνακα μας.
- Στη συνέχεια, χρησιμοποιούμε τη λέξη-κλειδί προσθήκη για να προσθέσουμε τον αριθμό 1, τη συμβολοσειρά "Παράδειγμα" και τη Boolean τιμή "true" στη λίστα πίνακα.
- Στη συνέχεια χρησιμοποιούμε τη μέθοδο Console.WriteLine για να εμφανίσουμε την τιμή κάθε στοιχείου λίστας πίνακα στην κονσόλα. Θα παρατηρήσετε ότι όπως και οι πίνακες, μπορούμε να έχουμε πρόσβαση στα στοιχεία μέσω των θέσεων ευρετηρίου τους. Έτσι, για να αποκτήσουμε πρόσβαση στην πρώτη θέση της λίστας πίνακα, χρησιμοποιούμε τη θέση ευρετηρίου [0]. Και ούτω καθεξής και ούτω καθεξής.
Εάν ο παραπάνω κωδικός εισαχθεί σωστά και το πρόγραμμα εκτελεστεί, θα εμφανιστεί η ακόλουθη έξοδος.
Παραγωγή:
Από την έξοδο, μπορείτε να δείτε ότι όλα τα στοιχεία από τη λίστα πίνακα αποστέλλονται στην κονσόλα.
Ας δούμε μερικές ακόμη μεθόδους που είναι διαθέσιμες ως μέρος του ArrayList.
Κόμης
Αυτή η μέθοδος χρησιμοποιείται για τη λήψη του αριθμού των στοιχείων στη συλλογή ArrayList. Παρακάτω είναι η γενική σύνταξη αυτής της δήλωσης.
ArrayList.Count() – Αυτή η μέθοδος θα επιστρέψει τον αριθμό των στοιχείων που περιέχει η λίστα πίνακα.
Περιέχει
Αυτή η μέθοδος χρησιμοποιείται για να δούμε εάν υπάρχει ένα στοιχείο στη συλλογή ArrayList. Παρακάτω είναι η γενική σύνταξη αυτής της δήλωσης
ArrayList.Contains(element) – Αυτή η μέθοδος θα επιστρέψει true εάν το στοιχείο υπάρχει στη λίστα, διαφορετικά θα επιστρέψει false.
RemoveAt
Αυτή η μέθοδος χρησιμοποιείται για την αφαίρεση ενός στοιχείου σε μια συγκεκριμένη θέση στη συλλογή ArrayList. Παρακάτω είναι η γενική σύνταξη αυτής της δήλωσης
ArrayList.RemoveAt(index) – Αυτή η μέθοδος θα αφαιρέσει ένα στοιχείο από μια συγκεκριμένη θέση της λίστας Array.
Τώρα ας δούμε ότι αυτό λειτουργεί σε επίπεδο κώδικα. Όλος ο κώδικας που αναφέρεται παρακάτω θα εγγραφεί στην εφαρμογή Console μας. Ο κώδικας θα γραφτεί στο αρχείο μας Program.cs.
Στο παρακάτω πρόγραμμα, θα γράψουμε τον κώδικα για να δούμε πώς μπορούμε να χρησιμοποιήσουμε τις προαναφερθείσες μεθόδους.
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { ArrayList a1 = new ArrayList(); a1.Add(1); a1.Add("Example"); a1.Add(true); Console.WriteLine(a1.Count); Console.WriteLine(a1.Contains(2)); Console.WriteLine(a1[1]); a1.RemoveAt(1); Console.WriteLine(a1[1]); Console.ReadKey(); } } }
Code Εξήγηση:-
- Έτσι, η πρώτη ιδιότητα που βλέπουμε είναι η ιδιότητα Count. Λαμβάνουμε την ιδιότητα Count της λίστας πίνακα a1 και στη συνέχεια την γράφουμε στην Κονσόλα.
- Στο δεύτερο μέρος, χρησιμοποιούμε τη μέθοδο Contains για να δούμε αν η ArrayList a1 περιέχει το στοιχείο 2. Στη συνέχεια, γράφουμε το αποτέλεσμα στην Κονσόλα μέσω της εντολής Writeline.
- Τέλος, για να παρουσιάσουμε τη μέθοδο Remove element, εκτελούμε τα παρακάτω βήματα:
- Αρχικά, γράφουμε την τιμή του στοιχείου στη θέση 1 του ευρετηρίου της λίστας πίνακα στην κονσόλα.
- Στη συνέχεια αφαιρούμε το στοιχείο στη θέση 1 του ευρετηρίου της λίστας πίνακα.
- Τέλος, γράφουμε ξανά την τιμή του στοιχείου στη θέση Index 1 της λίστας πίνακα στην κονσόλα. Αυτό το σύνολο βημάτων θα δώσει μια δίκαιη ιδέα εάν η μέθοδος αφαίρεσης θα λειτουργήσει όπως θα έπρεπε.
Εάν ο παραπάνω κωδικός εισαχθεί σωστά και το πρόγραμμα εκτελεστεί, θα εμφανιστεί η ακόλουθη έξοδος.
Παραγωγή:
Γιατί ισχύει η τελευταία τιμή;
Εάν δείτε την ακολουθία των γεγονότων, το στοιχείο Παράδειγμα αφαιρείται από τον πίνακα επειδή βρίσκεται στη θέση 1. Στη συνέχεια, η θέση 1 του πίνακα αντικαθίσταται από ό,τι ήταν στη θέση 2 νωρίτερα και η τιμή "true"
Πώς να κάνετε επανάληψη σε μια λίστα πινάκων C#
Η ανάγνωση κάθε στοιχείου ενός ArrayList είναι μια συνηθισμένη εργασία. Επειδή ένα ArrayList αποθηκεύει τα στοιχεία του ως αντικείμενα, μπορείτε να τα επισκεφθείτε με έναν βρόχο foreach ή με έναν βρόχο for που χρησιμοποιεί την ιδιότητα Count. Ο βρόχος foreach είναι ο απλούστερος τρόπος, καθώς περιηγείται σε κάθε στοιχείο με τη σειρά χωρίς να χρειάζεται ευρετήριο.
Το παρακάτω παράδειγμα δημιουργεί μια ArrayList συμβολοσειρών και εκτυπώνει κάθε τιμή σε ξεχωριστή γραμμή. Ο κώδικας είναι γραμμένος στο αρχείο Program.cs μιας εφαρμογής Console.
Βήμα 1) Εισαγάγετε τον χώρο ονομάτων System.Collections και δημιουργήστε ένα ArrayList με τρία στοιχεία.
Βήμα 2) Χρησιμοποιήστε έναν βρόχο foreach για να διαβάσετε κάθε στοιχείο ως αντικείμενο και να το γράψετε στην κονσόλα.
using System; using System.Collections; namespace DemoApplication { class Program { static void Main(string[] args) { ArrayList a1 = new ArrayList(); a1.Add("Java"); a1.Add("Python"); a1.Add("Kotlin"); foreach (object item in a1) { Console.WriteLine(item); } Console.ReadKey(); } } }
Code Εξήγηση:-
- Ο χώρος ονομάτων System.Collections εισάγεται, ώστε ο τύπος ArrayList να είναι διαθέσιμος στο πρόγραμμα.
- Τρεις τιμές συμβολοσειράς προστίθενται στο ArrayList με τη μέθοδο Add.
- Ο βρόχος foreach διαβάζει κάθε στοιχείο ως αντικείμενο και η μέθοδος Console.WriteLine το εκτυπώνει σε μια νέα γραμμή.
Όταν εκτελείται το πρόγραμμα, εκτυπώνει Java, Pythonκαι Κοτλίν σε ξεχωριστές γραμμές. Ένας βρόχος for με την ιδιότητα Count θα έδινε το ίδιο αποτέλεσμα, επιτρέποντάς σας παράλληλα να χρησιμοποιήσετε τη θέση ευρετηρίου κάθε στοιχείου.
Μέθοδοι και Ιδιότητες C# ArrayList
Η κλάση ArrayList παρέχει πολλές ενσωματωμένες μεθόδους και ιδιότητες για τη διαχείριση των στοιχείων της. Πέρα από την προσθήκη και την αφαίρεση στοιχείων, μπορεί να ταξινομήσει, να αναζητήσει και να αντιστρέψει τη συλλογή. Τα πιο συνηθισμένα μέλη παρατίθενται παρακάτω.
| Μέλος | Περιγραφή |
| Πρόσθεση | Προσθέτει ένα μόνο στοιχείο στο τέλος της ArrayList. |
| Κύριο θέμα | Προσθέτει ένα στοιχείο σε μια συγκεκριμένη θέση ευρετηρίου. |
| ΑΦΑΙΡΕΣΗ | Αφαιρεί την πρώτη εμφάνιση ενός συγκεκριμένου στοιχείου. |
| RemoveAt | Αφαιρεί το στοιχείο στη δεδομένη θέση του δείκτη. |
| Καθαρισμός | Αφαιρεί όλα τα στοιχεία από το ArrayList. |
| Είδος | Ταξινομεί τα στοιχεία σε αύξουσα σειρά. |
| Reverse | Reverses η σειρά των στοιχείων στη λίστα. |
| Περιέχει | Επιστρέφει true εάν ένα δεδομένο στοιχείο υπάρχει στη λίστα. |
| Ευρετήριο | Επιστρέφει τη θέση ευρετηρίου ενός δεδομένου στοιχείου. |
| Κόμης | Ιδιότητα που επιστρέφει τον αριθμό των αποθηκευμένων στοιχείων. |
| Χωρητικότητα | Ιδιότητα που επιστρέφει τον αριθμό των στοιχείων που μπορεί να περιέχει η λίστα. |
Αυτά τα μέλη σάς επιτρέπουν να προσθέτετε, να βρίσκετε, να ταξινομείτε και να αφαιρείτε στοιχεία χωρίς να γράφετε μόνοι σας τη λογική, κάτι που είναι ένα από τα κύρια πλεονεκτήματα της χρήσης μιας συλλογής σε σχέση με έναν απλό πίνακα.
Διαφορά μεταξύ ArrayList και List σε C#
Τόσο ένα ArrayList όσο και ένα γενικό Λιστα αποθηκεύουν μια ομάδα στοιχείων που μπορούν να αναπτυχθούν κατά τον χρόνο εκτέλεσης, ωστόσο διαφέρουν στον τρόπο που χειρίζονται τους τύπους. Η γνώση της διαφοράς σάς βοηθά να επιλέξετε τον σωστό για τον σύγχρονο κώδικα C#.
Οι κύριες διαφορές παρατίθενται παρακάτω:
- Ασφάλεια τύπου: Ένα ArrayList αποθηκεύει κάθε στοιχείο ως αντικείμενο, ενώ ένα List είναι συνδεδεμένο με έναν δηλωμένο τύπο και ελέγχεται κατά τη στιγμή της μεταγλώττισης.
- Απόδοση: Ένα ArrayList τοποθετεί σε πλαίσιο και αποσυνδέει τύπους τιμών όπως ο int, κάτι που κοστίζει χρόνο, ενώ ένα List αποφεύγει την τοποθέτηση σε πλαίσιο για καλύτερη ταχύτητα.
- Χώρος ονομάτων: Το ArrayList βρίσκεται στο System.Collections, ενώ το List βρίσκεται στο System.Collections.Generic.
- χύτευση: Η ανάγνωση από ένα ArrayList συχνά απαιτεί μια μετατροπή στον αρχικό τύπο, αλλά ένα List επιστρέφει απευθείας τον σωστό τύπο.
- Σύσταση: Microsoft Συνιστά τη Λίστα για νέα ανάπτυξη επειδή είναι ασφαλέστερη, ταχύτερη και πιο εύκολη στην ανάγνωση.
Εν ολίγοις, ένα ArrayList είναι χρήσιμο για την κατανόηση παλαιότερου κώδικα ή αποθήκευσης μικτού τύπου, ενώ μια Λίστα είναι η προτιμώμενη επιλογή για τις περισσότερες εφαρμογές σήμερα.




