Το λεξικό είναι μια χρήσιμη δομή δεδομένων που σας επιτρέπει να αποθηκεύετε ζεύγη κλειδιών-τιμών. Μπορείτε να αποκτήσετε αποτελεσματική πρόσβαση σε μια τιμή από το λεξικό χρησιμοποιώντας το κλειδί της.

Τα λεξικά στην C# υποστηρίζουν ενέργειες όπως η αφαίρεση μιας τιμής ή η επανάληψη σε ολόκληρο το σύνολο τιμών.

Τι είναι ένα λεξικό στο C#;

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

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

{1001, "Μία"},
{1002, "Όσκαρ"},
{1003, "Πουλάκι"},
{1004, "Bluey"},
{1005, "Λέων"},
{1006, "Travis"}

Αυτή η δομή σάς επιτρέπει να έχετε πρόσβαση σε δεδομένα χρησιμοποιώντας το συγκεκριμένο κλειδί που αναφέρεται σε μια εγγραφή. Για παράδειγμα, μπορείτε να ανακτήσετε την εγγραφή με την τιμή Πουλάκι αναφέροντάς το με το κλειδί αναζήτησης 1003.

Πώς να δημιουργήσετε ένα λεξικό

Για να δημιουργήσετε ένα λεξικό, πρέπει να καθορίσετε τον τύπο αντικειμένου τόσο για το κλειδί όσο και για την τιμή.

  1. Δημιουργήστε το λεξικό. Σε αυτό το παράδειγμα, το κλειδί είναι ένας ακέραιος αριθμός και η τιμή για κάθε εγγραφή είναι μια συμβολοσειρά.
    Λεξικό<ενθ, σειρά> κατοικίδια = νέος Λεξικό<ενθ, σειρά>();
  2. Θα χρειαστεί να χρησιμοποιήσετε το Σύστημα. Συλλογές. Γενικός namespace που περιέχει την κλάση Dictionary. Βεβαιωθείτε ότι το κάνετε στην κορυφή του αρχείου σας:
    χρησιμοποιώντας Σύστημα. Συλλογές. Γενικός;

Πώς να προσθέσετε στοιχεία στο λεξικό

Μπορείτε να προσθέσετε στοιχεία στο λεξικό κατά τη διάρκεια ή μετά την προετοιμασία του.

  1. Μπορείτε να προσθέσετε στοιχεία κατά την προετοιμασία του λεξικού. Για να το κάνετε αυτό, προσθέστε μερικές τιμές σε σγουρές αγκύλες μετά την αρχική νέα δήλωση Λεξικό.
    Λεξικό<ενθ, σειρά> κατοικίδια = νέος Λεξικό<ενθ, σειρά>()
    {
    {1001, "Μία"},
    {1002, "Όσκαρ"},
    {1003, "Πουλάκι"},
    {1004, "Bluey"},
    {1005, "Λέων"},
    {1006, "Travis"}
    };
  2. Εάν έχετε ήδη δημιουργήσει το λεξικό, μπορείτε να χρησιμοποιήσετε την ενσωματωμένη μέθοδο Add() του λεξικού.
    κατοικίδια. Προσθήκη(1007, "Snowy");

Δεν μπορείτε να προσθέσετε μια τιμή για ένα κλειδί που υπάρχει ήδη. Εάν προσπαθήσετε να το κάνετε, θα λάβετε ένα ArgumentException.

Δεν μπορείτε να χρησιμοποιήσετε α μηδενικό τιμή ως κλειδί για μια καταχώρηση σε ένα λεξικό. Ωστόσο, μπορείτε να αποθηκεύσετε μια μηδενική τιμή σε ένα λεξικό.

Πώς να προσθέσετε αντικείμενα στο λεξικό

Εάν χρησιμοποιείτε ένα oαντικειμενοστρεφής προγραμματισμός στυλ, πιθανότατα έχετε τουλάχιστον μία κλάση που χρησιμοποιείτε για να δημιουργήσετε αντικείμενα. Ας υποθέσουμε ότι είχατε μια τάξη που αποθήκευε λεπτομέρειες για κατοικίδια:

Μπορείτε να προσθέσετε αντικείμενα που δημιουργήθηκαν από αυτήν την κλάση σε ένα λεξικό.

  1. Βεβαιωθείτε ότι έχετε δημιουργήσει το λεξικό με τον τύπο αντικειμένου Pet που έχει καθοριστεί για την τιμή.
    Λεξικό<ενθ, Pet> petObjects = νέος Λεξικό<ενθ, Pet>();
  2. Δημιουργήστε το αντικείμενο του κατοικίδιου ζώου σας.
    Pet mia = νέος Κατοικίδιο ζώο(1001, "Μία", νέος Ημερομηνία ώρα(2010, 6, 29), 9.0,
    νέος Ημερομηνία ώρα(2022, 05, 02));
  3. Προσθέστε το νέο αντικείμενο κατοικίδιου στο λεξικό.
    petObjects. Προσθήκη(1001, mia);

Πώς να αποκτήσετε πρόσβαση σε ένα στοιχείο στο λεξικό

Μπορείτε να αποκτήσετε πρόσβαση σε ένα στοιχείο στο λεξικό χρησιμοποιώντας το Κλειδί.

  1. Χρησιμοποιήστε το όνομα της μεταβλητής για το λεξικό, ακολουθούμενο από το κλειδί γύρω από ένα ζευγάρι αγκύλες. Αυτό θα επιστρέψει το αντικείμενο που είναι αποθηκευμένο σε αυτό το συγκεκριμένο τμήμα του λεξικού.
    var κατοικίδιο = κατοικίδιο Αντικείμενα[1001];
    Κονσόλα. WriteLine (pet.name);

Πώς να επαναλάβετε το λεξικό

Μπορείτε να χρησιμοποιήσετε α για κάθε βρόχο για επανάληψη σε ένα λεξικό:

  1. Χρησιμοποιήστε ένα foreach για επανάληψη σε κάθε KeyValuePair στο λεξικό. Υποθέτοντας ότι καλέσατε τον επαναλήπτη είσοδος, μπορείτε να αποκτήσετε πρόσβαση στο κλειδί και την τιμή χρησιμοποιώντας είσοδος. Κλειδί και είσοδος. αξία.
    για κάθε (KeyValuePair<ενθ, Pet> καταχώρηση σε petObjects)
    {
    // εκτυπώστε το κλειδί
    Κονσόλα. WriteLine (εισαγωγή. Κλειδί);

    // εκτυπώστε το όνομα του αντικειμένου για αυτήν την εγγραφή
    Κονσόλα. WriteLine (εισαγωγή. Value.name);
    }

Πώς να ενημερώσετε ένα αντικείμενο σε ένα λεξικό

Μπορείτε να ενημερώσετε ένα στοιχείο αντικαθιστώντας την τιμή του στο λεξικό.

  1. Εάν έχετε απλούς τύπους αντικειμένων στο λεξικό σας, μπορείτε να αντικαταστήσετε απευθείας μια τιμή μιας εγγραφής.
    κατοικίδια[1001] = "Μάγια";
  2. Εάν έχετε προσθέσει αντικείμενα στο λεξικό σας, μπορείτε να αντικαταστήσετε μια τιμή σε ένα εντελώς νέο αντικείμενο.
    Κουνελάκι κατοικίδιο = νέος Κατοικίδιο ζώο(1001, "Κουνελάκι", νέος Ημερομηνία ώρα(2021, 8, 1), 3.0, νέος Ημερομηνία ώρα(2021, 8, 4));
    pet αντικείμενα[1001] = λαγουδάκι;
  3. Εάν έχετε ένα αντικείμενο στο λεξικό, μπορείτε επίσης να ενημερώσετε μια μεμονωμένη ιδιότητα. Μπορείτε να αντικαταστήσετε την αξία του ακινήτου απευθείας ή να χρησιμοποιήσετε έναν ρυθμιστή.
    pet αντικείμενα[1001].name = "Maya";
    // Ή
    pet αντικείμενα[1001].setName("Maya");

Πώς να διαγράψετε ένα αντικείμενο σε ένα λεξικό

Μπορείτε να επιλέξετε να διαγράψετε ένα μεμονωμένο στοιχείο ή όλα τα στοιχεία.

  1. Για να διαγράψετε ένα μεμονωμένο στοιχείο, χρησιμοποιήστε τη μέθοδο Built-in Remove() του λεξικού. Εισαγάγετε το κλειδί της εγγραφής που θέλετε να διαγράψετε ως όρισμα.
    petObjects. Αφαιρώ(1002);
  2. Για να διαγράψετε όλα τα στοιχεία στο λεξικό, χρησιμοποιήστε τη μέθοδο Built-in Clear() του λεξικού
    petObjects. Σαφή();

Δομές δεδομένων σε C#

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

Εάν θέλετε να βελτιώσετε το λεξιλόγιο της δομής δεδομένων σας, μπορείτε να ξεκινήσετε την εξερεύνηση πιο προηγμένων δομών δεδομένων. Μερικά παραδείγματα αυτών περιλαμβάνουν το Fibonacci Heap, AVL Tree ή Red Black Tree.

3 προηγμένες δομές δεδομένων που πρέπει να γνωρίζει κάθε προγραμματιστής

Διαβάστε Επόμενο

ΜερίδιοΤιτίβισμαΜερίδιοΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ

Σχετικά θέματα

  • Προγραμματισμός
  • Λεξικό
  • Προγραμματισμός

Σχετικά με τον Συγγραφέα

Sharlene Von Drehnen (Δημοσιεύτηκαν 14 άρθρα)

Η Sharlene είναι Tech Writer στο MUO και εργάζεται επίσης με πλήρη απασχόληση στην ανάπτυξη λογισμικού. Είναι πτυχιούχος Πληροφορικής και έχει προϋπηρεσία στη Διασφάλιση Ποιότητας και στο Πανεπιστημιακό Φροντιστήριο. Η Sharlene λατρεύει τα παιχνίδια και το πιάνο.

Περισσότερα από τη Sharlene Von Drehnen

Εγγραφείτε στο ενημερωτικό μας δελτίο

Εγγραφείτε στο ενημερωτικό μας δελτίο για συμβουλές τεχνολογίας, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για να εγγραφείτε