Collections& Genericsnesne grubunu işlemek için kullanışlıdır. .NET'te, tüm koleksiyon nesneleri arabirim altında gelir IEnumerableve bu da ArrayList(Index-Value))& karakterine sahiptir HashTable(Key-Value). .NET framework 2.0 sonra ArrayList& HashTableile değiştirilmiştir List& Dictionary. Artık, günümüz projelerinde Arraylist& HashTableartık kullanılmamaktadır.
HashTable& Dictionary, Arasındaki farka gelince Dictionaryjenerik Hastabledeğil jenerik. Herhangi bir nesne türünü ekleyebiliriz HashTable, ancak geri alırken onu gereken türe dökmemiz gerekir. Yani, tip güvenli değildir. Ancak dictionary, kendini bildirirken, anahtar ve değer türünü belirtebiliriz, bu nedenle geri alırken yayınlamaya gerek yoktur.
Bir örneğe bakalım:
HashTable
class HashTableProgram
{
static void Main(string[] args)
{
Hashtable ht = new Hashtable();
ht.Add(1, "One");
ht.Add(2, "Two");
ht.Add(3, "Three");
foreach (DictionaryEntry de in ht)
{
int Key = (int)de.Key; //Casting
string value = de.Value.ToString(); //Casting
Console.WriteLine(Key + " " + value);
}
}
}
Sözlük,
class DictionaryProgram
{
static void Main(string[] args)
{
Dictionary<int, string> dt = new Dictionary<int, string>();
dt.Add(1, "One");
dt.Add(2, "Two");
dt.Add(3, "Three");
foreach (KeyValuePair<int, String> kv in dt)
{
Console.WriteLine(kv.Key + " " + kv.Value);
}
}
}