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

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

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

Παρακάτω είναι μερικά παραδείγματα για το πώς μπορεί να φαίνονται οι τιμές ενός πίνακα κατακερματισμού.

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

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

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

Δήλωση του Hashtable

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

Hashtable ht = new Hashtable()

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

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

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

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

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

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

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

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

Hashtable σε C#

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 στη μεταβλητή 'κλειδιά'.
  1. Στη συνέχεια, για κάθε τιμή κλειδιού, παίρνουμε τη σχετική τιμή στο hashtable χρησιμοποιώντας τη δήλωση ht[k].

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

Παραγωγή:

Hashtable σε C#

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

ContainsKey

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

Hashtable.Containskey(key)

ContainsValue

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

Hashtable.ContainsValue(value)

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

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

Hashtable σε C#

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. Αυτή η μέθοδος θα επιστρέψει true εάν το κλειδί υπάρχει στο hashtable. Αυτή η μέθοδος θα πρέπει να επιστρέψει true καθώς το κλειδί υπάρχει στο hashtable.
  2. Στη συνέχεια χρησιμοποιούμε τη μέθοδο ContainsValue για να δούμε αν η τιμή υπάρχει στο hashtable. Αυτή η μέθοδος θα επιστρέψει "true" καθώς η τιμή υπάρχει στο hashtable.

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

Παραγωγή:

Hashtable σε C#

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

Περίληψη

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