Pourquoi préfère-t-on Dictionary à Hashtable en C# ?
Pourquoi préfère-t-on Dictionary à Hashtable en C# ?
Pourquoi préfère-t-on Dictionary à Hashtable en C# ?
Re: Pourquoi préfère-t-on Dictionary à Hashtable en C# ?
Pour ce que ça vaut, un Dictionary **est** (conceptuellement) une table de hachage.
Si vous vouliez dire « pourquoi utilise-t-on la classe `Dictionary` plutôt que la classe `Hashtable` ? », la réponse est simple : `Dictionary` est un type générique, `Hashtable` ne l'est pas. Cela signifie que vous obtenez la sécurité de type avec `Dictionary`, car vous ne pouvez pas y insérer n'importe quel objet, et vous n'avez pas à caster les valeurs que vous en extrayez.
Fait intéressant, l'implémentation de `Dictionary` dans le .NET Framework est basée sur le `Hashtable`, comme vous pouvez le constater dans ce commentaire de son code source :
Si vous vouliez dire « pourquoi utilise-t-on la classe `Dictionary` plutôt que la classe `Hashtable` ? », la réponse est simple : `Dictionary` est un type générique, `Hashtable` ne l'est pas. Cela signifie que vous obtenez la sécurité de type avec `Dictionary`, car vous ne pouvez pas y insérer n'importe quel objet, et vous n'avez pas à caster les valeurs que vous en extrayez.
Fait intéressant, l'implémentation de `Dictionary` dans le .NET Framework est basée sur le `Hashtable`, comme vous pouvez le constater dans ce commentaire de son code source :