KeyValuePair VS DictionaryEntry

Quelle est la différence entre KeyValuePair qui est la version générique et DictionaryEntry?

Pourquoi KeyValuePair est utilisé à la place de DictionaryEntry dans la classe Dictionary générique?

KeyValuePair est utilisé à la place de DictionaryEntry car il est généré. L’avantage d’utiliser un KeyValuePair est que nous pouvons donner au compilateur plus d’informations sur ce que KeyValuePair notre dictionnaire. Pour développer l’exemple de Chris (dans lequel nous avons deux dictionnaires contenant paires ).

 Dictionary dict = new Dictionary(); foreach (KeyValuePair item in dict) { int i = item.Value; } Hashtable hashtable = new Hashtable(); foreach (DictionaryEntry item in hashtable) { // Cast required because comstackr doesn't know it's a  pair. int i = (int) item.Value; } 

KeyValuePair permet de parcourir le dictionnaire . C’est la manière de faire les choses .Net 2 (et suivantes).

DictionaryEntry est destiné à l’itération via HashTables. Ceci est la manière de faire les choses .Net 1.

Voici un exemple:

 Dictionary MyDictionary = new Dictionary(); foreach (KeyValuePair item in MyDictionary) { // ... } Hashtable MyHashtable = new Hashtable(); foreach (DictionaryEntry item in MyHashtable) { // ... }