Collections& Genericsкорисні для обробки групи об'єктів. У .NET всі об'єкти колекцій потрапляють під інтерфейс IEnumerable, який у свою чергу має ArrayList(Index-Value))& HashTable(Key-Value). Після .NET Framework 2.0, ArrayList& HashTableбули замінені на List& Dictionary. Тепер Arraylist& & HashTableбільше не використовуються в сучасних проектах.
Переходячи до різниці між HashTable& Dictionary, Dictionaryє загальним, де як Hastableце не є загальним. Ми можемо додати до будь-якого типу об’єкт HashTable, але під час отримання нам потрібно привести його до потрібного типу. Отже, це не безпечно. Але до того dictionary, заявляючи про себе, ми можемо вказати тип ключа та значення, тому немає необхідності робити це під час пошуку.
Розглянемо приклад:
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);
}
}
}
Словник,
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);
}
}
}