Anahtar-değer çiftlerini depolayan, genel Dictionary<TKey, TValue> koleksiyonuna benzer, genel olmayan bir koleksiyondur. Her anahtarın hash kodunu hesaplayarak aramaları optimize eder ve dahili olarak farklı bir kovada saklar ve ardından değerlere erişim sırasında belirtilen anahtarın hash koduyla eşleşir. Hashtable

Hashtable Özellikleri
Hashtable anahtar-değer çiftlerini saklar.
İsim alanı altında gelir.System.Collections
IDictionary arayüzünü uygular.
Anahtarlar benzersiz olmalıdır ve null olamaz.
Değerler null veya çift olabilir.
Değerlere indeksleyicide ilişkili anahtar geçirilerek erişilebilir, örneğin myHashtable[key]
Öğeler DictionaryEntry nesneleri olarak saklanır.

Hashtable numberNames = new Hashtable();
numberNames.Add(1,"One"); //Add() yöntemini kullanarak bir anahtar/değer ekleme
numberNames.Add(2,"Two");
numberNames.Add(3,"Three");

//Aşağıdakiler çalışma zamanı istisnası atar: anahtar zaten eklendi.
//numberNames.Add(3, "Three");

foreach(DictionaryEntry de in numberNames)
    Console.WriteLine("Key: {0}, Value: {1}", de.Key, de.Value);
		
// creating a Hashtable using collection-initializer syntax
var cities = new Hashtable(){
	{"UK", "London, Manchester, Birmingham"},
	{"USA", "Chicago, New York, Washington"},
	{"India", "Mumbai, New Delhi, Pune"}
};
		
foreach(DictionaryEntry de in cities)
    Console.WriteLine("Key: {0}, Value: {1}", de.Key, de.Value);

Koleksiyon, aşağıda gösterildiği gibi Dictionary’nin tüm öğelerini içerebilir

Dictionary<int, string> dict = new Dictionary<int, string>();
dict.Add(1, "one");
dict.Add(2, "two");
dict.Add(3, "three");

Hashtable ht = new Hashtable(dict);