Lors du coaching d’un développeur débutant, une colle m’a été posée : “En .Net 2.0, faut-il utiliser Hashtable ou Dictionary<object, object> ?
J’ai donc décidé de me faire une idée précise des différences, dont voici les conclusions.

Utilisation:

string key = "test";
int valeur = 123;
Hashtable hTable = new Hashtable();
hTable.Add(key, valeur);
int maValeur = (int)hTable[key];
Dictionary<string, int> dictionnaire = new Dictionary<string, int>();
dictionnaire.Add(key, valeur);
int maValeur = dictionnaire[key];

A 1ère vue j’étais tenté de répondre qu’utiliser le dictionnaire générique permet de s’affranchir des problèmes de cast et assure un typage fort des paires clé/valeur.
La question qui est venue ensuite est : toute ses opérations liées à l’utilisation des génériques rendent-elles l’utilisation moins performante…
Voici la réponse :

Conclusion:
L’utilisation de la collection générique Dictionary<TKey, TValue> est plus performante et garantie un typage fort, donc un code plus stable. Il n’y a donc plus de questions à se poser

NB : Lors de la migration de code 1.1 vers 2.0, attention au changement de comportement l’indexeur . Sur une hashtable, si une clé n’existe pas elle renvoit null, sur un Dictionary celà lance une exception

Tags:
Répondre