Pourquoi Dictionary est-il préféré à Hashtable en C# ?
Source : Stack Overflow [.net]
Pour ce que cela vaut, un Dictionary est (conceptuellement) une table de hachage.
Si vous vouliez dire « pourquoi utilisons-nous la classe Dictionary<TKey, TValue> au lieu de la classe Hashtable ? », alors la réponse est simple : Dictionary<TKey, TValue> est un type générique, Hashtable ne l’est pas. Cela signifie que vous obtenez la sécurité de type avec Dictionary<TKey, TValue>, car vous ne pouvez pas y insérer n’importe quel objet au hasard, et vous n’avez pas besoin de convertir (cast) les valeurs que vous en extrayez.
Fait intéressant, l’implémentation de Dictionary<TKey, TValue> dans le .NET Framework est basée sur Hashtable, comme vous pouvez le constater à partir de ce commentaire dans son code source :
The generic Dictionary was copied from Hashtable’s source