Yanıtlar:
KeyValuePair<TKey,TValue>DictionaryEntryüretildiği için yerine kullanılır . A kullanmanın avantajı KeyValuePair<TKey,TValue>, derleyiciye sözlüğümüzde ne olduğu hakkında daha fazla bilgi verebilmemizdir. Chris'in örneğini genişletmek için ( <string, int>çiftler içeren iki sözlüğümüz var ).
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> Sözlük <T, T> üzerinden yineleme yapmak içindir. Bu, bir şeyler yapmanın .Net 2 (ve sonrası) yoludur.
DictionaryEntry, HashTables üzerinden yineleme yapmak içindir. Bu, işleri yapmanın .Net 1 yoludur.
İşte bir örnek:
Dictionary<string, int> MyDictionary = new Dictionary<string, int>();
foreach (KeyValuePair<string, int> item in MyDictionary)
{
// ...
}
Hashtable MyHashtable = new Hashtable();
foreach (DictionaryEntry item in MyHashtable)
{
// ...
}