make lista for declarar c#

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; }