C# hashtable med eksempler

Hvad er Hashtable i C#?

En hash-tabel er en speciel samling, der bruges til at opbevare nøgleværdi-elementer. Så i stedet for kun at gemme én værdi som stakken, arraylisten og køen, gemmer hash-tabellen 2 værdier. Disse 2 værdier udgør et element i hash-tabellen.

Nedenfor er nogle eksempler på, hvordan værdier i en hash-tabel kan se ud.

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

Ovenfor har vi 3 nøgleværdipar. Nøglerne til hvert element er henholdsvis 001, 002 og 003. Værdierne for hvert nøgleværdipar er ". Net", "C#" og "ASP.Net" henholdsvis.

Lad os se på de tilgængelige operationer for Hashtable-samlingen mere detaljeret.

Erklæring af hashtabellen

Deklarationen af ​​en hashtabel er vist nedenfor. En hashtabel oprettes ved hjælp af hashtable-datatypen. Det "nye" nøgleord bruges til at oprette et objekt af en hashtabel. Objektet tildeles derefter variablen ht.

Hashtable ht = new Hashtable()

Tilføjelse af elementer til hashtabellen

Tilføj metoden bruges til at tilføje et element til . Udsagnets generelle syntaks er angivet nedenfor

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

Eksempel 1:

Husk, at hvert element i hash-tabellen består af 2 værdier, den ene er nøglen, og den anden er værdien.

Lad os nu se, at dette fungerer på kodeniveau. Al den nedennævnte kode vil blive skrevet til vores konsolapplikation.

Koden vil blive skrevet til vores Program.cs fil. I nedenstående program vil vi skrive koden for at se, hvordan vi kan bruge de ovennævnte metoder.

For nu i vores eksempel vil vi blot se på, hvordan vi kan oprette en hashtabel , tilføje elementer til hashtabellen og vise dem i overensstemmelse hermed.

Hastabel i 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();
   }
 }
}

Kodeforklaring:-

  1. Først erklærer vi hashable-variablen ved hjælp af hashtable-datatypen ved at bruge nøgleordet "Ny". Navnet på den variable definerer er 'ht'.
  2. Vi tilføjer derefter elementer til hash-tabellen ved hjælp af Tilføj-metoden. Husk, at vi skal tilføje både et nøgle- og værdielement, når vi tilføjer noget til hashtabellen.
  3. Der er ingen direkte måde at vise elementerne i en hash-tabel på.
  • For at vise hashtabellen skal vi først hente listen over nøgler (001, 002 og 003) fra hashtabellen.
  • Dette gøres via ICollection-grænsefladen. Dette er en speciel datatype, som kan bruges til at gemme nøglerne til en hashtabel samling. Vi tildeler derefter nøglerne til hashtable-samlingen til variablen 'nøgler'.
  1. Dernæst for hver nøgleværdi får vi den tilhørende værdi i hashtabellen ved at bruge sætningen ht[k].

Hvis ovenstående kode er indtastet korrekt, og programmet køres, vil følgende output blive vist.

Output:

Hastabel i C#

Lad os se på nogle flere tilgængelige metoder til hashtabeller.

Indeholder nøgle

Denne metode bruges til at se, om en nøgle er til stede i hashtabellen. Nedenfor er den generelle syntaks for denne erklæring. Udsagnet vil returnere sandt, hvis nøglen eksisterer, ellers returnerer det værdien false.

Hashtable.Containskey(key)

Indeholder Værdi

Denne metode bruges til at se, om en værdi er til stede i hashtabellen. Nedenfor er den generelle syntaks for denne erklæring. Udsagnet vil returnere sandt, hvis værdien eksisterer, ellers returnerer det værdien falsk.

Hashtable.ContainsValue(value)

Eksempel 2:

Lad os ændre koden i vores Konsolapplikation for at vise, hvordan vi kan bruge "Containskey"- og "ContainsValue"-metoden.

Hastabel i 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();
   }
 }
}

Kodeforklaring:-

  1. Først bruger vi ContainsKey-metoden til at se, om nøglen er til stede i hashtabellen. Denne metode vil returnere sand, hvis nøglen er til stede i hashtabellen. Denne metode bør returnere sand, da nøglen findes i hashtabellen.
  2. Vi bruger derefter ContainsValue-metoden til at se, om værdien er til stede i hashtabellen. Denne metode vil returnere 'sand', da værdien findes i hashtabellen.

Hvis ovenstående kode er indtastet korrekt, og programmet køres, vil følgende output blive vist.

Output:

Hastabel i C#

Fra outputtet kan du tydeligt se, at både nøglen og værdien, der søges i, er til stede i hash-tabellen.

Resumé

En hashtabel bruges til at gemme elementer, der består af nøgleværdipar. For at få adgang til værdien af ​​et element skal du kende elementets nøgle.