Cómo utilizar el objeto Dictionary con Visual Basic

Resumen

Este artículo describe el uso de un componente de la biblioteca de secuencias de comandos de Microsoft; el objeto de diccionario.

Más información

El diccionario es bastante similar al objeto de colección en funcionalidad y propósito. El diccionario, sin embargo, ofrece alguna funcionalidad que no está disponible con una colección. Algunas de estas características son:

  • La opción para especificar un método de comparación para las claves. Esto permite una clave entre mayúsculas y minúsculas, por ejemplo.
  • Un método para determinar si existe un objeto en un diccionario.
  • Un método para extraer todas las claves en una matriz.
  • Un método para la extracción de todos los elementos en una matriz.
  • Un método para cambiar un valor de clave.
  • Un método para quitar todos los elementos del diccionario.
  • Claves de diccionario no se limitan al tipo de datos de cadena.
NOTA: Una diferencia importante entre el objeto de colección y el objeto Dictionary es el comportamiento de la propiedad Item. Si utiliza la propiedad Item para hacer referencia a una clave inexistente de una colección, recibirá un error. Si utiliza la propiedad Item para hacer referencia a una clave no existente en un diccionario, esa clave se agregará al diccionario. Utilice el método Exists para determinar si es o no una clave en un diccionario.


El objeto Dictionary es un componente de la biblioteca Microsoft Scripting, que no se incluye con Visual Basic versión 5.0 o posterior. Puede obtener la biblioteca Microsoft Scripting (SCRRUN. (DLL) mediante la instalación de uno de los siguientes paquetes:

   Windows Script Host
Windows NT Option Pack
IIS 3.0
Scripting 3.1 upgrade.


Ejemplo paso a paso

  1. Inicie un nuevo proyecto EXE estándar en Visual Basic. (Asegúrese de que se muestre la ventana Inmediato). Se creará Form1 de forma predeterminada.
  2. Agregue una referencia a Microsoft Scripting Runtime.
  3. Agregue un módulo estándar al proyecto.
  4. En el menú proyecto, seleccione Project1.Properties y cambie el objeto inicial en Sub Main.
  5. Inserte el código siguiente en Module1:
          Option Explicit      Dim dict As Dictionary

    Sub Main()
    Dim keyArray, itemArray, element

    Set dict = New Dictionary
    With dict
    'set compare mode
    .CompareMode = BinaryCompare
    'add item using named arguments
    .Add Key:="mike", Item:=22
    'add item without named arguments
    .Add "joe", 33

    'case sensitivity and Exists method
    'does MIKE exist?
    Debug.Print "MIKE exists = " & .Exists("MIKE")
    'change key value
    .Key("mike") = "MIKE"
    'does MIKE exist?
    Debug.Print "MIKE exists = " & .Exists("MIKE")

    'extract keys into variant array
    Debug.Print "Array of Keys"
    keyArray = .Keys
    For Each element In keyArray
    Debug.Print element
    Next

    'extract items into variant array
    Debug.Print "Array of Items"
    itemArray = .Items
    For Each element In itemArray
    Debug.Print element
    Next

    'empty the dictionary
    .RemoveAll
    Debug.Print dict.Count & " Items in Dictionary"

    End With
    Set dict = Nothing
    End Sub


  6. Ejecute el proyecto. Debería ver que la búsqueda inicial de la clave falla, a continuación, se ejecuta correctamente después de que el valor de clave se reemplaza con un valor en mayúsculas. A continuación, debería ver el contenido de las matrices de variante que se han extraído del diccionario utilizando los métodos de claves y elementos. Por último, verá el resultado de vaciar el diccionario.
Propiedades

Id. de artículo: 187234 - Última revisión: 01/08/2017 - Revisión: 1

Comentarios