El Dictionary en Visual Basic es una colección asociativa que permite almacenar pares clave-valor. En VB.NET, se utiliza Dictionary(Of TKey, TValue) del espacio de nombres System.Collections.Generic.
Las versiones tempranas de Visual Basic estaban limitadas a colecciones clásicas (Collection), que solo admitían claves de tipo cadena o numérica sin tipado. Con la llegada de VB.NET y el .NET Framework, se introdujo el Dictionary genérico en las colecciones, lo que hizo que trabajar con datos asociativos fuera más seguro y rápido.
Los errores típicos al utilizar Dictionary incluyen:
Al trabajar con Dictionary, es crucial:
ContainsKeyEjemplo de código:
Dim dict As New Dictionary(Of String, Integer) dict("manzanas") = 10 ' Verificación segura antes de acceder: If dict.ContainsKey("bananas") Then Console.WriteLine(dict("bananas")) Else Console.WriteLine("¡Clave no encontrada!") End If
Características clave:
¿Qué excepción se lanza al intentar acceder a una clave inexistente en Dictionary y cómo evitarla?
Error: System.Collections.Generic.KeyNotFoundException. Se debe usar el método ContainsKey para prevenir este error.
¿Se pueden modificar las claves de elementos ya existentes en el Dictionary?
No, la clave no se puede cambiar una vez añadida; solo se puede eliminar el elemento y añadir uno nuevo con otra clave.
¿Cuál es la diferencia entre Dictionary y Hashtable en VB.NET?
El Dictionary es seguro en cuanto al tipo (genérico), funciona más rápido y no requiere empaquetado/desempaquetado de valores. Hashtable es antiguo y no se recomienda su uso.
** Caso negativo
Un programador guarda estadísticas de ventas por ciudades a través de Dictionary, pero no verifica si la ciudad-clave está en la colección antes de acceder. Obtiene KeyNotFoundException cuando el informe se toma para una nueva ciudad.
Ventajas:
Desventajas:
** Caso positivo
El mismo informe, pero al acceder a la clave siempre se usa la verificación ContainsKey, y si la clave está ausente, se retorna 0 o se muestra un mensaje.
Ventajas:
Desventajas: