Los diccionarios (dictionary) son utilizados comunmente cuando se trabaja con datos en C#, para trabajar con colecciones de clave/valor. La tarea común es iterar sobre el diccionario. Y hay varias formas de hacerlo.
Definir un Diccionario en C#
Antes de iterar un diccionario, repasemos como definir y llenar un diccionario en C#.
En C#, los diccionarios son implementados utilizando la clase genérica System.Collections.Generic.Dictionary<TKey, TValue>, donde TKey representa el tipo de las claves y TValue representa el tipo de valor almacenado dentro del diccionario.
Ejemplo:
//definir un diccionario
Dictionary<string, int> utilesEscolares = new Dictionary<string, int>();
En este ejemplo, estamos creando un diccionario donde las claves son del tipo string y los valores son del tipo int. Se pueden reemplazar estos tipos con cualquier otro tipo de datos que cumpla con los requerimientos que tengamos.
Una vez definido nuestro diccionario, podemos llenarlo con pares clave/valor utilizando el método .Add() o inicializandolo con los inicializadores de colección.
//agregar la información individualmente por par clave/valor
utilesEscolares.Add("Cuadernos", 5);
utilesEscolares.Add("Lapiceros", 2);
//definir un diccionario e inicializarlo con datos
Dictionary<string, decimal> frutas = new Dictionary<string, decimal>()
{
{"manzana", (decimal)10.50},
{"piña", (decimal)20.30},
{"banana", (decimal)15.70},
};
Una vez definido el diccionario y con información agregada, se pueden iterar.
Iterar sobre pares Clave/Valor del diccionario
Se puede recorrer un diccionario sobre los pares clave/valor, para utilizar foreach o cualquier bucle dentro de C#.
foreach(var item in frutas)
{
Console.WriteLine($"La {item.Key} vale {item.Value}.");
}
Iterando solo por las claves del diccionario
También se puede recorrer el diccionario solamente por las claves.
foreach(var clave in utilesEscolares.Keys) { Console.WriteLine(clave); }
Iterando solo por los valores del diccionario
También se puede recorrer el diccionario solamente por los valores.
foreach(var valor in utilesEscolares.Values){ Console.WriteLine(valor); }
0 Comentarios