Pourquoi Dictionary est-il préféré à Hashtable en C# ?

Pourquoi Dictionary est-il préféré à Hashtable en C# ?

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

Source