C # 'da Hashtable nedir?
Karma tablo, anahtar-değer öğelerini depolamak için kullanılan özel bir koleksiyondur. Yani yığın, dizi listesi ve kuyruk gibi tek bir değeri depolamak yerine, hash tablosu 2 değeri saklar. Bu 2 değer, hash tablosunun bir elemanını oluşturur.
Aşağıda, bir karma tablo değerlerinin nasıl görünebileceğine dair bazı örnekler verilmiştir.
{ "001" , ".Net" }{ "002" , ".C#" }{ "003" , "ASP.Net" }
Yukarıda 3 anahtar değer çiftimiz var. Her elemanın anahtarları sırasıyla 001, 002 ve 003'tür. Her bir anahtar değer çiftinin değerleri sırasıyla ".Net", "C #" ve "ASP.Net" dir.
Hashtable koleksiyonu için mevcut işlemlere daha detaylı bakalım.
Hashtable Beyanı
Bir Hashtable'ın beyanı aşağıda gösterilmiştir. Hashtable Datatype yardımıyla bir Hashtable oluşturulur. "New" anahtar sözcüğü, Hashtable'ın bir nesnesini yaratmak için kullanılır. Nesne daha sonra ht değişkenine atanır.
Hashtable ht = new Hashtable()
Hashtable'a öğe ekleme
Add yöntemi, kuyruğa bir öğe eklemek için kullanılır. İfadenin genel sözdizimi aşağıda verilmiştir.
HashTable.add("key","value")
Örnek 1:
Karma tablosunun her bir öğesinin 2 değerden oluştuğunu unutmayın; biri anahtar, diğeri değerdir.
Şimdi, bunun kod seviyesinde çalıştığını görelim. Aşağıda belirtilen kodun tamamı Konsol uygulamamıza yazılacaktır.
Kod, Program.cs dosyamıza yazılacaktır. Aşağıdaki programda yukarıda belirtilen yöntemleri nasıl kullanabileceğimizi görmek için kodu yazacağız.
Şimdilik örneğimizde, nasıl bir hashtable oluşturabileceğimize, hashtable'a öğeler ekleyebileceğimize ve bunları buna göre nasıl görüntüleyebileceğimize bakacağız.
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();}}}
Kod Açıklaması: -
- İlk olarak, "Yeni" anahtar kelimesini kullanarak Hashtable veri türünü kullanarak hashtable değişkenini bildiriyoruz. Tanımlanan değişkenin adı 'ht'dir.
- Ardından, Add yöntemini kullanarak hash tablosuna öğeler ekliyoruz. Hashtable'a bir şey eklerken hem bir anahtar hem de değer öğesi eklememiz gerektiğini unutmayın.
- Bir karma tablonun öğelerini göstermenin doğrudan bir yolu yoktur.
- Hashtable'ı görüntülemek için öncelikle hash tablosundan anahtarların listesini (001, 002 ve 003) almamız gerekir.
- Bu, ICollection arayüzü aracılığıyla yapılır. Bu, bir hashtable koleksiyonunun anahtarlarını saklamak için kullanılabilen özel bir veri türüdür. Daha sonra hashtable koleksiyonunun anahtarlarını 'anahtarlar' değişkenine atarız.
- Daha sonra, her anahtar değeri için, hashtable'daki ilgili değeri ht [k] ifadesini kullanarak elde ederiz.
Yukarıdaki kod doğru girilirse ve program çalıştırılırsa aşağıdaki çıktı görüntülenir.
Çıktı:
Hash tabloları için mevcut olan daha fazla yönteme bakalım.
Anahtar içerir
Bu yöntem, Hashtable'da bir anahtar olup olmadığını görmek için kullanılır. Bu ifadenin genel sözdizimi aşağıdadır. İfade, anahtar varsa true, aksi takdirde false değerini döndürür.
Hashtable.Containskey(key)
Değer içerir
Bu yöntem, Hashtable'da bir Değer olup olmadığını görmek için kullanılır. Bu ifadenin genel sözdizimi aşağıdadır. Değer varsa ifade true, aksi takdirde false değerini döndürür.
Hashtable.ContainsValue(value)
Örnek 2:
"Containskey" ve "ContainsValue" yöntemini nasıl kullanabileceğimizi göstermek için Konsol uygulamamızdaki kodu değiştirelim.
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();}}}
Kod Açıklaması: -
- İlk olarak, anahtarın hashtable'da mevcut olup olmadığını görmek için ContainsKey yöntemini kullanıyoruz. Anahtar hashtable'da mevcutsa bu yöntem true değerini döndürür. Anahtar hashtable'da mevcut olduğundan bu yöntem true döndürmelidir.
- Ardından, değerin hashtable'da mevcut olup olmadığını görmek için ContainsValue yöntemini kullanırız. Değer hashtable'da mevcut olduğundan bu yöntem 'true' döndürür.
Yukarıdaki kod doğru girilirse ve program çalıştırılırsa aşağıdaki çıktı görüntülenir.
Çıktı:
Çıktıdan, hem anahtarın hem de aranan değerin hash tablosunda mevcut olduğunu açıkça görebilirsiniz.
Özet
- Bir Hashtable, anahtar değer çiftlerinden oluşan öğeleri depolamak için kullanılır. Bir öğenin değerine erişmek için öğenin anahtarını bilmeniz gerekir.