C # Hashtable με παραδείγματα

Πίνακας περιεχομένων:

Anonim

Τι είναι το Hashtable στο C #;

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

Ακολουθούν μερικά παραδείγματα για το πώς μοιάζουν οι τιμές ενός πίνακα κατακερματισμού.

{ "001" , ".Net" }{ "002" , ".C#" }{ "003" , "ASP.Net" }

Πάνω έχουμε 3 ζεύγη τιμών-κλειδιών. Τα πλήκτρα κάθε στοιχείου είναι 001, 002 και 003 αντίστοιχα. Οι τιμές κάθε ζεύγους τιμών κλειδιών είναι ".Net", "C #" και "ASP.Net" αντίστοιχα.

Ας δούμε τις διαθέσιμες λειτουργίες για τη συλλογή Hashtable με περισσότερες λεπτομέρειες.

Δήλωση του Hashtable

Η δήλωση ενός Hashtable φαίνεται παρακάτω. Ένα Hashtable δημιουργείται με τη βοήθεια του Hashtable Datatype. Η "νέα" λέξη-κλειδί χρησιμοποιείται για τη δημιουργία ενός αντικειμένου Hashtable. Στη συνέχεια το αντικείμενο εκχωρείται στη μεταβλητή ht.

Hashtable ht = new Hashtable()

Προσθήκη στοιχείων στο Hashtable

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

HashTable.add("key","value")

Παράδειγμα 1:

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

Τώρα, ας δούμε αυτό να λειτουργεί σε επίπεδο κώδικα. Όλος ο παρακάτω κώδικας θα γραφτεί στην εφαρμογή Κονσόλα μας.

Ο κωδικός θα γραφτεί στο αρχείο Program.cs μας. Στο παρακάτω πρόγραμμα, θα γράψουμε τον κώδικα για να δούμε πώς μπορούμε να χρησιμοποιήσουμε τις παραπάνω μεθόδους.

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

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){Hashtable ht = new Hashtable();ht.Add("001",".Net");ht.Add("002","C#");ht.Add("003","ASP.Net");ICollection keys = ht.Keys;foreach (String k in keys){Console.WriteLine(ht[k]);}Console.ReadKey();}}} 

Επεξήγηση κώδικα: -

  1. Πρώτον, δηλώνουμε τη μεταβλητή hashtable χρησιμοποιώντας τον τύπο δεδομένων Hashtable χρησιμοποιώντας τη λέξη-κλειδί "Νέο". Το όνομα της μεταβλητής καθορίζει είναι "ht"
  2. Στη συνέχεια προσθέτουμε στοιχεία στον πίνακα κατακερματισμού χρησιμοποιώντας τη μέθοδο Προσθήκη. Θυμηθείτε ότι πρέπει να προσθέσουμε ένα στοιχείο κλειδιού και τιμής κατά την προσθήκη κάτι στο hashtable.
  3. Δεν υπάρχει άμεσος τρόπος εμφάνισης των στοιχείων ενός πίνακα κατακερματισμού.
  • Για να εμφανιστεί το hashtable, πρέπει πρώτα να λάβουμε τη λίστα των κλειδιών (001, 002 και 003) από τον πίνακα κατακερματισμού.
  • Αυτό γίνεται μέσω της διεπαφής ICollection. Αυτός είναι ένας ειδικός τύπος δεδομένων που μπορεί να χρησιμοποιηθεί για την αποθήκευση των κλειδιών μιας συλλογής hashtable. Στη συνέχεια, αντιστοιχίζουμε τα κλειδιά της συλλογής hashtable στη μεταβλητή «κλειδιά».
  1. Στη συνέχεια για κάθε τιμή κλειδιού, λαμβάνουμε τη σχετική τιμή στο hashtable χρησιμοποιώντας τη δήλωση ht [k].

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

Παραγωγή:

Ας δούμε μερικές ακόμη διαθέσιμες μεθόδους για κατακερματισμούς.

Περιέχει Key

Αυτή η μέθοδος χρησιμοποιείται για να διαπιστωθεί εάν υπάρχει ένα κλειδί στο Hashtable. Ακολουθεί η γενική σύνταξη αυτής της δήλωσης. Η δήλωση θα επιστρέψει αληθινή εάν το κλειδί υπάρχει, αλλιώς θα επιστρέψει την τιμή false.

Hashtable.Containskey(key)

Περιέχει τιμή

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

Hashtable.ContainsValue(value)

Παράδειγμα 2:

Ας αλλάξουμε τον κώδικα στην εφαρμογή Κονσόλα μας για να δείξουμε πώς μπορούμε να χρησιμοποιήσουμε τη μέθοδο "Containskey" και "ContainsValue".

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){Hashtable ht = new Hashtable();ht.Add("001",".Net");ht.Add("002","C#");ht.Add("003","ASP.Net");Console.WriteLine(ht.ContainsKey("001"));Console.WriteLine(ht.ContainsValue("C#"));Console.ReadKey();}}}

Επεξήγηση κώδικα: -

  1. Αρχικά, χρησιμοποιούμε τη μέθοδο ContainsKey για να δούμε αν το κλειδί υπάρχει στο hashtable. Αυτή η μέθοδος θα επιστρέψει αληθινή εάν το κλειδί υπάρχει στο hashtable. Αυτή η μέθοδος θα πρέπει να επιστρέψει αληθινή δεδομένου ότι το κλειδί υπάρχει στο hashtable.
  2. Στη συνέχεια, χρησιμοποιούμε τη μέθοδο ContainsValue για να δούμε αν η τιμή υπάρχει στο hashtable. Αυτή η μέθοδος θα επιστρέψει «αληθινή» δεδομένου ότι η τιμή υπάρχει στο hashtable.

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

Παραγωγή:

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

Περίληψη

  • Ένα Hashtable χρησιμοποιείται για την αποθήκευση στοιχείων που αποτελούνται από ζεύγη τιμών κλειδιών. Για να αποκτήσετε πρόσβαση στην τιμή ενός στοιχείου, πρέπει να γνωρίζετε το κλειδί του στοιχείου.