C# hashtable példákkal

Mi a Hashtable a C#-ban?

A hash tábla egy speciális gyűjtemény, amely kulcsérték elemek tárolására szolgál. Tehát ahelyett, hogy csak egy értéket tárolna, mint például a verem, a tömblista és a sor, a hash tábla 2 értéket tárol. Ez a 2 érték a hash tábla elemét képezi.

Az alábbiakban néhány példa látható arra, hogyan nézhetnek ki egy hash-tábla értékei.

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

Fent van 3 kulcsértékpárunk. Az egyes elemek billentyűi rendre 001, 002 és 003. Az egyes kulcsértékpárok értékei ". Net“, „C#” és „ASP.Net”.

Nézzük meg részletesebben a Hashtable gyűjteményhez elérhető műveleteket.

A Hashtable nyilatkozata

A Hashtable nyilatkozata alább látható. A Hashtable a Hashtable Datatype segítségével jön létre. Az „új” kulcsszó egy Hashtable objektumának létrehozására szolgál. Az objektumot ezután a ht változóhoz rendeljük.

Hashtable ht = new Hashtable()

Elemek hozzáadása a Hashtable-hoz

Az Add metódus segítségével elemet adhatunk hozzá a sorban áll. Az utasítás általános szintaxisa alább látható

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

Példa 1:

Ne feledje, hogy a hash tábla minden eleme 2 értékből áll, az egyik a kulcs, a másik az érték.

Lássuk, hogyan működik ez kódszinten. Az összes alább említett kód be lesz írva a konzolalkalmazásunkba.

A kód a Program.cs fájlunkba kerül. Az alábbi programban megírjuk a kódot, hogy megnézzük, hogyan tudjuk használni a fent említett módszereket.

Példánkban egyelőre csak azt nézzük meg, hogyan hozhatunk létre hashtable-t, adjunk hozzá elemeket a hashtable-hoz, és ennek megfelelően jelenítsük meg azokat.

Hashtable C# nyelven

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

Kód magyarázata: -

  1. Először deklaráljuk a hashtable változót a Hashtable adattípus használatával, az „Új” kulcsszó használatával. A definiált változó neve 'ht'.
  2. Ezután az Add metódussal elemeket adunk a hash táblához. Ne feledje, hogy kulcs- és értékelemet is fel kell adnunk, amikor hozzáadunk valamit a hashtable-hoz.
  3. Nincs közvetlen mód a hash-tábla elemeinek megjelenítésére.
  • A hashtable megjelenítéséhez először le kell szereznünk a kulcsok listáját (001, 002 és 003) a hash táblából.
  • Ez az ICollection felületen keresztül történik. Ez egy speciális adattípus, amely egy hashtable gyűjtemények kulcsainak tárolására használható. Ezután hozzárendeljük a hashtable gyűjtemény kulcsait a 'keys' változóhoz.
  1. Ezután minden kulcsértékhez megkapjuk a hozzá tartozó értéket a hashtable-ban a ht[k] utasítás használatával.

Ha a fenti kódot megfelelően adta meg és a program lefut, a következő kimenet jelenik meg.

output:

Hashtable C# nyelven

Nézzünk meg néhány további módszert, amelyek elérhetők a hash-táblázatokhoz.

ContainsKey

Ezzel a módszerrel ellenőrizhető, hogy van-e kulcs a Hashtable-ban. Az alábbiakban ennek az állításnak az általános szintaxisa látható. Az utasítás igaz értéket ad vissza, ha a kulcs létezik, ellenkező esetben false értéket ad vissza.

Hashtable.Containskey(key)

ContainsValue

Ezzel a módszerrel ellenőrizhető, hogy egy érték szerepel-e a hashtable-ban. Az alábbiakban ennek az állításnak az általános szintaxisa látható. Az utasítás igazat ad vissza, ha az érték létezik, ellenkező esetben hamis értéket ad vissza.

Hashtable.ContainsValue(value)

Példa 2:

Változtassuk meg a kódot Konzol alkalmazás hogy bemutassuk, hogyan használhatjuk a „Containskey” és a „ContainsValue” metódust.

Hashtable C# nyelven

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

Kód magyarázata: -

  1. Először a ContainsKey metódust használjuk annak ellenőrzésére, hogy a kulcs megtalálható-e a hashtable-ban. Ez a metódus igazat ad vissza, ha a kulcs szerepel a hashtable-ban. Ennek a metódusnak igaznak kell lennie, mivel a kulcs létezik a hashtable-ban.
  2. Ezután a ContainsValue metódust használjuk annak ellenőrzésére, hogy az érték szerepel-e a hashtable-ban. Ez a metódus "true"-t ad vissza, mivel az Érték létezik a hashtable-ban.

Ha a fenti kódot megfelelően adta meg és a program lefut, a következő kimenet jelenik meg.

output:

Hashtable C# nyelven

A kimenetből jól látható, hogy a keresett kulcs és érték egyaránt jelen van a hash táblában.

Összegzésként

A Hashtable kulcsértékpárokból álló elemek tárolására szolgál. Egy elem értékének eléréséhez ismernie kell az elem kulcsát.