Avatar ·

¿Por qué Dictionary es preferible a Hashtable en C#? Analizando las diferencias

¡Hola a todos! Soy un desarrollador principiante de C# y me encontré con una situación que me confundió. Al estudiar colecciones, me topé con dos clases similares: `Hashtable` y `Dictionary`. Ambas, según entendí, almacenan pares "clave-valor" y permiten buscar datos rápidamente por clave. En ejemplos de código antiguos y en algunos libros, veo a menudo `Hashtable`. Por ejemplo, así: ```csharp Hashtable table = new Hashtable(); table.Add("clave1", "valor1"); table.Add(123, 42); // clave — int, valor — int string val = (string)table["clave1"]; // se necesita conversión explícita ``` Pero en proyectos modernos y en Stack Overflow, todos escriben sobre `Dictionary`. Probé ambas opciones y noté que con `Dictionary` el código se ve diferente: ```csharp Dictionary dict = new Dictionary(); dict.Add("clave1", "valor1"); // dict.Add(123, 42); // ¡Error de compilación! Tipo incorrecto string val = dict["clave1"]; // no se necesita conversión ``` Mi pregunta: ¿cuál es la diferencia fundamental