Tabella hash C# con esempi

Cos'è Hashtable in C#?

Una tabella hash è una raccolta speciale utilizzata per archiviare elementi chiave-valore. Quindi, invece di memorizzare un solo valore come lo stack, l'elenco degli array e la coda, la tabella hash memorizza 2 valori. Questi 2 valori formano un elemento della tabella hash.

Di seguito sono riportati alcuni esempi di come potrebbero apparire i valori di una tabella hash.

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

Sopra abbiamo 3 coppie di valori chiave. Le chiavi di ciascun elemento sono rispettivamente 001, 002 e 003. I valori di ciascuna coppia chiave-valore sono ". Net“, “C#” e “ASP.Net” rispettivamente.

Diamo un'occhiata più in dettaglio alle operazioni disponibili per la raccolta Hashtable.

Dichiarazione dell'Hashtable

La dichiarazione di una Hashtable è mostrata di seguito. Una Hashtable viene creata con l'aiuto del tipo di dati Hashtable. La parola chiave "new" viene utilizzata per creare un oggetto di una Hashtable. L'oggetto viene quindi assegnato alla variabile ht.

Hashtable ht = new Hashtable()

Aggiunta di elementi alla Hashtable

Il metodo Add viene utilizzato per aggiungere un elemento al file fare la coda. La sintassi generale dell'enunciato è riportata di seguito

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

Esempio 1:

Ricorda che ogni elemento della tabella hash è composto da 2 valori, uno è la chiave e l'altro è il valore.

Ora vediamolo funzionare a livello di codice. Tutto il codice indicato di seguito verrà scritto nella nostra applicazione Console.

Il codice verrà scritto nel nostro file Program.cs. Nel programma seguente, scriveremo il codice per vedere come possiamo utilizzare i metodi sopra menzionati.

Per ora nel nostro esempio, vedremo solo come possiamo creare una tabella hash, aggiungere elementi alla tabella hash e visualizzarli di conseguenza.

Tabella hash in 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();
   }
 }
}

Spiegazione del codice: -

  1. Innanzitutto, dichiariamo la variabile hashtable utilizzando il tipo di dati Hashtable utilizzando la parola chiave "New". Il nome della variabile definita è 'ht'.
  2. Aggiungiamo quindi gli elementi alla tabella hash utilizzando il metodo Add. Ricorda che dobbiamo aggiungere sia un elemento chiave che un valore quando aggiungiamo qualcosa alla tabella hash.
  3. Non esiste un modo diretto per visualizzare gli elementi di una tabella hash.
  • Per visualizzare la tabella hash, dobbiamo prima ottenere l'elenco delle chiavi (001, 002 e 003) dalla tabella hash.
  • Questa operazione viene eseguita tramite l'interfaccia ICollection. Si tratta di un tipo di dati speciale che può essere utilizzato per archiviare le chiavi di raccolte di tabelle hash. Assegniamo quindi le chiavi della raccolta hashtable alla variabile "keys".
  1. Successivamente, per ciascun valore chiave, otteniamo il valore associato nella tabella hash utilizzando l'istruzione ht[k].

Se il codice sopra riportato viene inserito correttamente e il programma viene eseguito, verrà visualizzato il seguente output.

Produzione:

Tabella hash in C#

Diamo un'occhiata ad altri metodi disponibili per le tabelle hash.

Contiene chiave

Questo metodo viene utilizzato per verificare se è presente una chiave nell'Hashtable. Di seguito è riportata la sintassi generale di questa istruzione. L'istruzione restituirà true se la chiave esiste, altrimenti restituirà il valore false.

Hashtable.Containskey(key)

ContieneValore

Questo metodo viene utilizzato per verificare se un valore è presente nell'Hashtable. Di seguito è riportata la sintassi generale di questa istruzione. L'istruzione restituirà true se il valore esiste, altrimenti restituirà il valore false.

Hashtable.ContainsValue(value)

Esempio 2:

Cambiamo il codice nel nostro Applicazione console per mostrare come possiamo utilizzare il metodo “Containskey” e “ContainsValue”.

Tabella hash in 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();
   }
 }
}

Spiegazione del codice: -

  1. Innanzitutto utilizziamo il metodo ContieneKey per verificare se la chiave è presente nella tabella hash. Questo metodo restituirà true se la chiave è presente nella tabella hash. Questo metodo dovrebbe restituire true poiché la chiave esiste nella tabella hash.
  2. Utilizziamo quindi il metodo ContieneValue per verificare se il valore è presente nella tabella hash. Questo metodo restituirà "true" poiché il valore esiste nella tabella hash.

Se il codice sopra riportato viene inserito correttamente e il programma viene eseguito, verrà visualizzato il seguente output.

Produzione:

Tabella hash in C#

Dall'output, puoi vedere chiaramente che sia la chiave che il valore da cercare sono presenti nella tabella hash.

Sintesi

Una Hashtable viene utilizzata per memorizzare elementi che comprendono coppie di valori chiave. Per accedere al valore di un elemento, è necessario conoscere la chiave dell'elemento.