Ответ 1
KeyValuePair<TKey,TValue>
используется вместо DictionaryEntry
, потому что он генерируется. Преимущество использования KeyValuePair<TKey,TValue>
заключается в том, что мы можем предоставить компилятору больше информации о том, что есть в нашем словаре. Чтобы расширить пример Криса (в котором у нас есть два словаря, содержащие пары <string, int>
).
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 a <string, int> pair.
int i = (int) item.Value;
}