Hashtable, önceki yazımda da bahsettiğim gibi bir koleksiyon sınıfıdır. Hashtable koleksiyonlarının temel özelliği, elemanlarının key (anahtar) ve value (değer) çiftleri ile saklanmasıdır.
Not: Hashtable içerisindeki key'lerin tümü birbirinden farklı olmalıdır.
Örnek: Bir sınıfta her bir öğrenciye bir adet dolap tahsis edildiğini ve hangi dolabın hangi öğrenciye ait olduğunu da C# programlama dili ile Hashtable kullanılarak saklandığını düşünelim.
Hashtable dolaplar = new Hashtable();
dolaplar.Add(1,"Ali");
dolaplar.Add(2,"Hakan");
dolaplar.Add(3,"Ayşe");
dolaplar.Add(4,"Fatma");
dolaplar.Add(5,"Tolga");
Okullar açıldığında 2. dolabın kime ait olduğu konusunda öğrenciler bize soru sorduklarında 2 no'lu (key) dolabın sahibini bulmak için;
System.Console.WriteLine(dolaplar[2]); //Hakan
7 numaralı bir dolap olup olmadığını tespit etmek için;
System.Console.WriteLine(dolaplar.ContainsKey(7)); //False
Ayşe'nin bir dolabu olup olmadığını kontrol etmek için (Hashtable içerisinde value araması)
System.Console.WriteLine(dolaplar.ContainsValue("Ayşe")); //True
Tüm dolapları ve sahiplerini yazdırmak için (Hashtable içerisindeki tüm key ve value'ları yazdırmak için):
foreach (DictionaryEntry dolap in dolaplar)
Console.WriteLine("Dolap No: " + dolap.Key + " Sahibi: " + dolap.Value);
Çıktı:
Dolap No: 5 Sahibi: Tolga
Dolap No: 4 Sahibi: Fatma
Dolap No: 3 Sahibi: Ayşe
Dolap No: 2 Sahibi: Hakan
Dolap No: 1 Sahibi: Ali
Not: Hashtable key'leri farklı veri tiplerine de sahip olabilir. Örneğin plaka ile araç sahibi sözlüğü hazırlarken hem key hem de value değerleri string olabilir.
Önceki bazı diğer benzer yazılarım için;
bkz: C# ve Generic ile Non-Generic Koleksiyonlar Nelerdir?
bkz: C# ile params anahtar sözcüğü kullanımı ve örnekleri
bkz: C# Programlama Dilinde Koleksiyon Nedir?
bkz: Interface Nedir?
bkz: C# ile iki boyutlu ArrayList Tanımlamak
bkz: C# Hata Ayıklama Sürecinde Watch, Locals ve Autos Kullanımı