lista - make dictionary c#
KeyValuePair VS DictionaryEntry (2)
KeyValuePair <T, T> es para iterar a través de Dictionary <T, T>. Esta es la forma de hacer .Net 2 (y en adelante).
DictionaryEntry es para iterar a través de HashTables. Esta es la forma .Net 1 de hacer las cosas.
Aquí hay un ejemplo:
Dictionary<string, int> MyDictionary = new Dictionary<string, int>();
foreach (KeyValuePair<string, int> item in MyDictionary)
{
// ...
}
Hashtable MyHashtable = new Hashtable();
foreach (DictionaryEntry item in MyHashtable)
{
// ...
}
¿Cuál es la diferencia entre KeyValuePair que es la versión genérica y DictionaryEntry?
¿Por qué se usa KeyValuePair en lugar de DictionaryEntry en la clase de diccionario genérica?
KeyValuePair<TKey,TValue>
se usa en lugar de DictionaryEntry
porque está genérico. La ventaja de usar un KeyValuePair<TKey,TValue>
es que podemos darle al compilador más información sobre lo que está en nuestro diccionario. Para ampliar el ejemplo de Chris (en el cual tenemos dos diccionarios que contienen pares de <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''s a <string, int> pair.
int i = (int) item.Value;
}