Jawaban:
KeyValuePair<TKey,TValue>digunakan sebagai pengganti DictionaryEntrykarena itu dibuat. Keuntungan menggunakan a KeyValuePair<TKey,TValue>adalah kita dapat memberi kompiler lebih banyak informasi tentang apa yang ada di kamus kita. Untuk memperluas contoh Chris (di mana kami memiliki dua kamus yang berisi <string, int>pasangan).
Dictionary<string, int> dict = new Dictionary<string, int>();
foreach (KeyValuePair<string, int> item in dict) {
int i = item.Value;
}
Hashtable hashtable = new Hashtable();
foreach (DictionaryEntry item in hashtable) {
// Cast required because compiler doesn't know it's a <string, int> pair.
int i = (int) item.Value;
}
KeyValuePair <T, T> adalah untuk iterasi melalui Dictionary <T, T>. Ini adalah cara .Net 2 (dan seterusnya) dalam melakukan sesuatu.
DictionaryEntry adalah untuk melakukan iterasi melalui HashTables. Ini adalah cara .Net 1 dalam melakukan sesuatu.
Berikut contohnya:
Dictionary<string, int> MyDictionary = new Dictionary<string, int>();
foreach (KeyValuePair<string, int> item in MyDictionary)
{
// ...
}
Hashtable MyHashtable = new Hashtable();
foreach (DictionaryEntry item in MyHashtable)
{
// ...
}