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.
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: -
- 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'.
- 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.
- 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.
- 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:
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.
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: -
- 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.
- 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:
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.