Örneklerle C# Hashtable

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 yalnızca bir değeri saklamak yerine, karma tablo 2 değeri depolar. Bu 2 değer, hash tablosunun bir öğesini oluşturur.

Aşağıda, bir karma tablonun değerlerinin nasıl görünebileceğine dair bazı örnekler verilmiştir. |_+_|

Yukarıda 3 anahtar değer çiftimiz var. Her elemanın tuşları 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'tir.

Hashtable koleksiyonu için mevcut olan işlemlere daha detaylı bakalım.

Hashtable'ın Deklarasyonu

Bir Hashtable'ın bildirimi aşağıda gösterilmiştir. Hashtable Datatype yardımıyla bir Hashtable oluşturulur. 'new' anahtar sözcüğü, bir Hashtable nesnesi oluşturmak için kullanılır. Nesne daha sonra ht değişkenine atanır. |_+_|

Hashtable'a eleman ekleme

Add metodu kuyruğa eleman eklemek için kullanılır. İfadenin genel sözdizimi aşağıda verilmiştir |_+_|

Örnek 1:

Hash tablosunun her elemanının 2 değerden oluştuğunu unutmayın, biri anahtar, diğeri değerdir.

Şimdi bunun kod düzeyinde çalıştığını görelim. Aşağıdaki kodların 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, sadece bir hashtable'ı nasıl oluşturacağımıza, hashtable'a elementler ekleyip buna göre nasıl görüntüleyebileceğimize bakacağız.

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

Kod Açıklama:-

  1. İlk olarak, 'New' anahtar sözcüğünü kullanarak Hashtable veri türünü kullanarak hashtable değişkenini bildiririz. Tanımlanan değişkenin adı 'ht'.
  2. Daha sonra Add yöntemini kullanarak hash tablosuna elemanlar ekleriz. Hashtable'a bir şey eklerken hem anahtar hem de değer öğesi eklememiz gerektiğini unutmayın.
  3. Bir karma tablonun öğelerini görüntülemenin doğrudan bir yolu yoktur.
  • Hashtable'ı görüntülemek için önce hash tablosundan anahtarların (001, 002 ve 003) listesini almamız gerekiyor.
  • Bu, ICollection arabirimi aracılığıyla yapılır. Bu, hashtable koleksiyonlarının anahtarlarını saklamak için kullanılabilecek özel bir veri türüdür. Daha sonra hashtable koleksiyonunun anahtarlarını 'keys' değişkenine atarız.
  1. Her bir anahtar değerinin yanında, ht[k] ifadesini kullanarak hash tablosundaki ilişkili değeri elde ederiz.

Yukarıdaki kod doğru girilir ve program çalıştırılırsa aşağıdaki çıktı görüntülenecektir.

Çıktı:

Hash tabloları için kullanılabilecek birkaç yönteme daha bakalım.

Anahtar İçerir

Bu yöntem, Hashtable'da bir anahtarın olup olmadığını görmek için kullanılır. Aşağıda bu ifadenin genel sözdizimi verilmiştir. Anahtar varsa, ifade true değerini döndürür, aksi takdirde false değerini döndürür. |_+_|

İçerirDeğer

Bu yöntem, Hashtable'da bir Değer olup olmadığını görmek için kullanılır. Aşağıda bu ifadenin genel sözdizimi verilmiştir. Değer varsa, ifade true değerini döndürür, aksi takdirde false değerini döndürür. |_+_|

Örnek 2:

'Containskey' ve 'ContainsValue' yöntemini nasıl kullanabileceğimizi göstermek için Konsol uygulamamızdaki kodu değiştirelim.

Hashtable ht = new Hashtable()

Kod Açıklama:-

  1. İlk olarak, anahtarın hashtable'da olup olmadığını görmek için ContainerKey yöntemini kullanırız. 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önmelidir.
  2. Ardından, değerin hashtable'da mevcut olup olmadığını görmek için ContainerValue yöntemini kullanırız. Değer, hashtable'da mevcut olduğundan, bu yöntem 'true' değerini döndürür.

Yukarıdaki kod doğru girilir ve program çalıştırılırsa aşağıdaki çıktı görüntülenecektir.

Çıktı:

Çıktıdan, hem anahtarın hem de aranan değerin karma tablosunda mevcut olduğunu açıkça görebilirsiniz.

Özet

  • Anahtar değer çiftlerinden oluşan öğeleri depolamak için bir Hashtable kullanılır. Bir elemanın değerine erişmek için elemanın anahtarını bilmeniz gerekir.