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 kรธ. 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();
   }
 }
}

Code Forklaring:-

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

Code Forklaring:-

  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.

Opsummer dette indlรฆg med: