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
, чтобы объявить себя, мы можем указать тип ключа и значение, поэтому нет необходимости приводить при получении.
Давайте посмотрим на пример:
Хеш-таблица
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);
}
}
}