Örneklerle C# Hashtable

C#'ta Hashtable nedir?

Karma tablosu, 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 karma tablosu 2 değeri saklar. Bu 2 değer karma tablosunun bir öğesini oluşturur.

Aşağıda bir karma tablosunun 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 tuşları sırasıyla 001, 002 ve 003'tür. Her anahtar değer çiftinin değerleri “. NetSırasıyla “, “C#” ve “ASP.Net”.

Hashtable koleksiyonu için mevcut işlemlere daha ayrıntılı olarak bakalım.

Hashtable Bildirgesi

Bir Hashtable'ın bildirimi aşağıda gösterilmiştir. Hashtable Veri Tipinin yardımıyla bir Hashtable oluşturulur. “Yeni” anahtar sözcüğü bir Hashtable nesnesi oluşturmak için kullanılır. Daha sonra nesne ht değişkenine atanır.

Hashtable ht = new Hashtable()

Hashtable'a öğe ekleme

Add yöntemi, bir öğeyi eklemek için kullanılır. kuyruk. İfadenin genel sözdizimi aşağıda verilmiştir

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

Örnek 1:

Hash tablosunun her öğesinin 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ğıda belirtilen kodların tamamı Konsol uygulamamıza yazılacaktır.

Kod Program.cs dosyamıza yazılacaktır. Aşağıdaki programda yukarıda bahsettiğimiz yöntemleri nasıl kullanabileceğimizi görmek için kod yazacağız.

Şimdilik örneğimizde sadece hashtable'ı nasıl oluşturabileceğimize, hashtable'a nasıl öğeler ekleyebileceğimize ve bunları buna göre nasıl görüntüleyebileceğimize bakacağız.

C# dilinde Hashtable

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ı:-

  1. Öncelikle “New” anahtar kelimesini kullanarak Hashtable veri tipini kullanarak hashtable değişkenini deklare ediyoruz. Tanımlanan değişkenin adı 'ht'tir.
  2. Daha sonra Add yöntemini kullanarak karma tablosuna öğeler ekliyoruz. Hashtable'a bir şey eklerken hem anahtar hem de değer öğesi eklememiz gerektiğini unutmayın.
  3. Karma tablonun öğelerini görüntülemenin doğrudan bir yolu yoktur.
  • Hashtable'ı görüntülemek için öncelikle hash tablosundan anahtarların (001, 002 ve 003) listesini almamız gerekiyor.
  • Bu ICollection arayüzü aracılığıyla yapılır. Bu, hash tablosu koleksiyonlarının anahtarlarını depolamak için kullanılabilecek özel bir veri türüdür. Daha sonra hash tablosu koleksiyonunun anahtarlarını 'keys' değişkenine atarız.
  1. Daha sonra, her anahtar değer için, ht[k] ifadesini kullanarak hash tablosundaki ilgili değeri elde ederiz.

Yukarıdaki kod düzgün bir şekilde girilip program çalıştırıldığında aşağıdaki çıktı görüntülenecektir.

Çıktı:

C# dilinde Hashtable

Hash tabloları için mevcut bazı yöntemlere bakalım.

Anahtar İçerir

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

Hashtable.Containskey(key)

İçerirDeğer

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

Hashtable.ContainsValue(value)

Örnek 2:

Kodumuzdaki kodu değiştirelim Konsol uygulaması “Containskey” ve “ContainsValue” yöntemini nasıl kullanabileceğimizi göstermek için.

C# dilinde Hashtable

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ı:-

  1. İlk olarak, anahtarın hashtable'da mevcut olup olmadığını görmek için ContainerKey yöntemini kullanıyoruz. Anahtar hash tablosunda mevcutsa bu yöntem true değerini döndürür. Anahtar hash tablosunda mevcut olduğundan bu yöntem true değerini döndürmelidir.
  2. Daha sonra değerin hash tablosunda mevcut olup olmadığını görmek için ContainerValue yöntemini kullanırız. Değer karma tablosunda mevcut olduğundan bu yöntem 'true' değerini döndürecektir.

Yukarıdaki kod düzgün bir şekilde girilip program çalıştırıldığında aşağıdaki çıktı görüntülenecektir.

Çıktı:

C# dilinde Hashtable

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

ÖZET

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