Avatar ·

Pourquoi Dictionary est-il préférable à Hashtable en C# ? Analysons les différences

Bonjour à tous ! Je suis un développeur C# débutant et j'ai rencontré une situation qui m'a dérouté. En étudiant les collections, je suis tombé sur deux classes similaires : `Hashtable` et `Dictionary`. Toutes deux, comme je l'ai compris, stockent des paires "clé-valeur" et permettent de rechercher rapidement des données par clé. Dans les anciens exemples de code et dans certains livres, je vois souvent `Hashtable`. Par exemple, comme ceci : ```csharp Hashtable table = new Hashtable(); table.Add("clé1", "valeur1"); table.Add(123, 42); // clé — int, valeur — int string val = (string)table["clé1"]; // nécessite un cast explicite ``` Mais dans les projets modernes et sur Stack Overflow, tout le monde parle de `Dictionary`. J'ai essayé les deux options et j'ai remarqué qu'avec `Dictionary`, le code semble différent : ```csharp Dictionary dict = new Dictionary(); dict.Add("clé1", "valeur1"); // dict.Add(123, 42); // Erreur de compilation ! Type incorrect string val = dict["clé1"]; // pas besoin de cast ``` Ma question : quelle est la différence fondamentale