¿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