Vanguarsoft Developers blog

Ing. Javier Leal -Desarrollador CPANAX C.A / Microsoft Student Partners – VENEZUELA

Uso de los Objetos Dictionary

Deja un comentario

dictionary-locals

Buenos Días tecnólogos hoy les traigo como usar los Diccionarios que son una herramienta muy útil para crear Código dinámico en tus aplicaciones, mucho de nosotros desarrolladores estamos acostumbrados a crear Entidades con sus propiedades para luego a estas entidades utilizarlas para Insertar, Mostrar Valores, Obtener Listas de dicho Objeto a partir de una consulta SQL y creamos tantas entidades como tablas tengamos para crear nuestro sistema lo que no permite que nuestro sistema sea Dinámico, no podemos reutilizar consultas ni adicionar campos por que implicaría una entidad nueva o una modificación fuerte de código.

Estas practicas ya muchos desarrolladores las han mejorado con herramientas de distintas formas y una de ellas muy útil es crear Diccionarios donde nuestras entidades estáticas pasan a ser Dinámicas ya todo depende de lo que incluye el diccionario de datos pero como podemos aplicar esta lógica?

Concepto por MSDN

Representa una colección de claves y valores.

Namespace: System.Collections.Generic

Primero que nada vamos a declarar una Variable de tipo Diccionario:

Se debe declarar de esta manera:

Dictionary<TKey, TValue> Nombre

Donde:

TKEY: Es el tipo de dato que utilizaras para el KEY puede ser un Entero, Una Cadena String que es lo mas Habitual pero en si esto puede ser lo que quieras.

TVALUE: es el tipo de datos del valor que va a estar ligado al Key Anterior puede ser de cualquier tipo normalmente es un Object así permitirá almacenar en este cualquier tipo de Objeto.

Nombre: Nombre de la variable para utilizarla en código.

Ejemplos:

Dictionary<string, Object>

Dictionary<int, string>

Dictionary<Object, Object>

Dictionary<string, string>

En nuestro caso Utilizaremos el mas habitual y que nos permita crear una Entidad Dinámica.

Dictionary<string, Object> DinamyObj = new Dictionary<string, Object>();

En esta modalidad puedes almacenar lo que sea en este objeto y sabrás donde esta cada cosa que adiciones dentro de ella a través de su Key.

Para Adicionar utiliza el Método Add que permite agrega la clave y el valor especificados al diccionario.

Ejemplo Adicionar la Fecha Actual,un valor Booleano Un string o entero:

DinamyObj.Add(“FechaActual”,DateTime.Now());

DinamyObj.Add(“Nombre”,”Javier Leal”);

DinamyObj.Add(“Edad”,25);

DinamyObj.Add(“Activo”,true);

Si puedes Adicionar Obviamente puede Eliminar Valores para ello en el Método Remove

DinamyObj.Remove(“Edad”);

O el Método Clear en caso de querer Eliminar todos los valores.

DinamyObj.Clear();

 

Además de esto hay Métodos donde puedes buscar verificar si un valor en especifico tales son los casos de los Métodos ContainsKey Determina si la colección Dictionary contiene la clave especificada y el ContainsValue Determina si la colección Dictionary contiene un valor específico.

Ejemplo:

DinamyObj.Containskey(“Apellido”); Devuelve: False

DinamyObj.ContainsValue(25); Devuelve: True

DinamyObj.Containskey(“Nombre”); Devuelve: True

DinamyObj.ContainsValue(False); Devuelve: False

 

A este tipo de objetos podemos hacerle un recorrido para conocer o listar todas sus claves o sus valores para acceder a esos valores

Ejemplo:

DinamyObj.Keys Devuelve: Un diccionario con los valores de las claves

DinamyObj.Values Devuelve: Un diccionario con los valores

 

Luego de que estos objetos ya están creados se puede editar y asignar de esta manera por ejemplo para cambiar el valor de edad seria:

DinamyObj[“Edad”] = 27;

y para escribirlo en un control por ejemplo en un texto seria

TXTEdad.Text = DinamyObj[“Edad”].ToString();

Cabe destacar que hacemos conversión de String debido a que el devuelve es un Object entonces si estamos por ejemplo devolviendo un valor Bool como es caso del valor Clave Activo a un control CheckBox seria

Check.IsChecked = Convert.ToBoolean(DinamyObj[“Edad”]);

A su vez también es importante para cuando estamos aplicando en Patrón MVVM en nuestros proyectos saben enlazar estos Objetos a través de enlaces Binding, Ejemplo asignando un valor a un Textbox y un check

<TextBox> Text="{Binding DinamyObj[Nombre], Mode=TwoWay}"/>

<CheckBox> IsChecked ="{Binding DinamyObj[Activo], Mode=TwoWay}"/>

Por ultimo estos objetos como todos podemos agregarlos a colecciones para tener listas de diccionarios que pueden ser enlazados de igual manera que que cualquier colección

List<Dictionary<string, Object>> ListDictionary

Espero que le saquen provecho a la información pueden buscar mas información por la Documentación Original.

http://msdn.microsoft.com/en-us/library/xfhwa508(v=vs.95).aspx

Autor: Ing. Javier J. Leal H.

Desarrollador en CPANAX C.A, Microsoft Student Partners de Venezuela Amantes de nuevas Tecnologías Desarrollador es Silverlight 5, Windows 8, Windows Phone, Influenciador y Orador en Actividades Tecnológicas Microsoft

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s