Quelle est la différence entre KeyValuePair qui est la version générique et DictionaryEntry?
Pourquoi KeyValuePair est-il utilisé à la place de DictionaryEntry dans la classe Dictionary générique?
Merci d'avance,
Geai...
Quelle est la différence entre KeyValuePair qui est la version générique et DictionaryEntry?
Pourquoi KeyValuePair est-il utilisé à la place de DictionaryEntry dans la classe Dictionary générique?
Merci d'avance,
Geai...
KeyValuePair<TKey,TValue>
est utilisé à la place de DictionaryEntry
car il est généré. L’avantage d’utiliser KeyValuePair<TKey,TValue>
est que nous pouvons donner au compilateur plus d’informations sur ce que contient notre dictionnaire. Pour développer l'exemple de Chris (dans lequel nous avons deux dictionnaires contenant des paires <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;
}
KeyValuePair <T, T> sert à effectuer une itération dans le dictionnaire <T, T>. C’est la façon de faire les choses .Net 2 (et suivantes).
DictionaryEntry est pour itérer à travers HashTables. C'est la façon de faire les choses .Net 1.
Voici un exemple:
Dictionary<string, int> MyDictionary = new Dictionary<string, int>();
foreach (KeyValuePair<string, int> item in MyDictionary)
{
// ...
}
Hashtable MyHashtable = new Hashtable();
foreach (DictionaryEntry item in MyHashtable)
{
// ...
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.