2009-04-02 10 views

Répondre

20

Pour .Net 2.0, vous avez toujours besoin de Dictionary. Cependant, soyez averti que ce n'est pas juste une "perte de remplacement" pour une Hashtable existante. Il y a quelques différences dans la façon dont ils fonctionnent (principalement la façon dont ils gèrent les valeurs nulles), ce qui signifie que vous devez d'abord vérifier votre code.

+5

+1 Pour mentionner la gestion des valeurs nulles. Il peut être utile d'expliquer que plus cela peut être un peu inattendu d'obtenir une exception au lieu de null lorsqu'une clé n'existe pas dans le dictionnaire. –

14

Hashtable est à peu près obsolète. Cela peut être utile pour l'interfaçage avec le code existant.

Dictionary est une classe générique introduite dans .NET 2.0, avec d'autres classes dans l'espace de noms System.Collections.Generic. Ils remplacent les classes dans l'espace de noms System.Collections.

9

Le principal avantage de HashTable est que vous pouvez l'utiliser et cibler .NET < 2.0.

Sinon, le dictionnaire < T, Y > (utilisé correctement) est à peu près meilleur dans tous les sens.

0

Voici ce que je sais

1) magasins Dictionnaire dans les principales paires de valeurs 2) Hastable stocke également en paires de valeurs clés, mais utilise une clé de hachage pour sonder le contenu.

Donc, si je devais décider quoi utiliser, devrais-je utiliser hashtable si ma collection est énorme et que je veux rechercher un certain article? Et utiliser le dictionnaire si la collection n'est pas si énorme?

Aussi une question de suivi est, en C#, hastable ne fait pas le chaînage comme dans c ou C++ est-ce correct?