@ Джей Муни : Общий класс Dictionary в .NET на самом деле является хеш-таблицей, только с фиксированными типами.
Код, который вы показали, не должен никого убеждать использовать Hashtable вместо словаря, так как обе части кода могут использоваться для обоих типов.
Для хеш-таблицы:
foreach(object key in h.keys)
{
string keyAsString = key.ToString(); // btw, this is unnecessary
string valAsString = h[key].ToString();
System.Diagnostics.Debug.WriteLine(keyAsString + " " + valAsString);
}
Для словаря:
foreach(string key in d.keys)
{
string valAsString = d[key].ToString();
System.Diagnostics.Debug.WriteLine(key + " " + valAsString);
}
И то же самое для другого с KeyValuePair, просто используйте неуниверсальную версию для Hashtable и универсальную версию для Dictionary.
Так что это так же просто в обоих направлениях, но Hashtable использует Object как для ключа, так и для значения, что означает, что вы будете упаковывать все типы значений, и у вас нет безопасности типов, а Dictionary использует универсальные типы и, следовательно, лучше. 1015 *