Método C# ToDictionary

Metodo C Todictionary



La función ToDictionary en C# es una función de extensión de LINQ que le permite transformar una colección de datos en un diccionario que ofrece una forma clara y práctica de asignar las entidades a distintas claves y valores relacionados. Requiere dos argumentos, dos delegados o expresiones lambda, uno para elegir la clave y otro adicional para elegir el valor de cada objeto de la colección. En este artículo, utilizaremos algunos ejemplos de código C# para demostrar los usos de la función ToDictionary.

Sintaxis:

Analicemos y comprendamos cada componente que se proporciona dentro de la siguiente sintaxis de la función C# ToDictionary uno por uno:



fue dictado = recopilación. Al Diccionario ( selector de claves , selector de elementos ) ;
  • La palabra clave 'var' se descarta aquí para definir la categoría de tipo del diccionario 'dict' resultante. En la mayoría de los casos, es Diccionario donde K es el tipo de clave y V es la categoría de tipo del valor del diccionario.
  • El elemento 'colección' representa la colección fuente que desea convertir en un diccionario 'dict'. Puede ser cualquier clase que implemente la interfaz IEnumerable, como una lista, una matriz o un resultado de consulta.
  • La palabra clave 'keySelector' es una expresión lambda o delegada que especifica cómo extraer la clave de cada elemento de la colección. Obtiene un elemento de la colección como argumento y devuelve el valor clave de ese elemento. La clave debe ser única para cada elemento de la colección, ya que los diccionarios no pueden tener claves duplicadas.
  • La palabra clave 'elementSelector' se refiere a una expresión delegada o lambda que especifica cómo extraer el valor de cada elemento de la colección. También obtiene un elemento de la colección como argumento y produce el valor de ese elemento.

Después de ejecutar la función ToDictionary, tendrá un nuevo objeto de diccionario donde cada elemento de la colección se representa como un par clave-valor.







Ejemplo 1:

Comencemos de nuevo con esta guía demostrando el uso de la función ToDictionary en C# con la ayuda de un ejemplo de código. Repasémoslo paso a paso.



El código comienza con la importación de los espacios de nombres requeridos: System, System.Collections.Generic y System.Linq. Estos espacios de nombres proporcionan las clases y métodos de extensión necesarios para trabajar con colecciones y LINQ. Se define la clase 'Dummy' que contiene el método 'Main' de este programa C#.



Dentro del método 'Principal', se crea una lista llamada 'L'. Esta lista contiene tres elementos de cadena que representan los nombres de diferentes perfumes elegidos por el usuario. El método ToDictionary se llama en la lista 'L'. Convierte la lista en un diccionario. Cada elemento de cadena de la lista sirve como clave y valor en el diccionario resultante.





El diccionario se crea con una comparación de claves que no distingue entre mayúsculas y minúsculas utilizando el parámetro StringComparer.OrdinalIgnoreCase que se utiliza principalmente para especificar una comparación que no distingue entre mayúsculas y minúsculas al comprobar la existencia de claves. Una declaración 'si' verifica si el diccionario contiene la clave 'bomba' ignorando las mayúsculas y minúsculas. Si se encuentra la clave, se procesará el fragmento de código dentro de la sección 'si'. Dentro del bloque 'if', se ejecuta la instrucción Console.WriteLine ('Bombshell existe') que imprime el mensaje 'Bombshell existe' en la consola.

usando el sistema ;

utilizando el sistema. Colecciones . Genérico ;

utilizando el sistema. Linq ;

muñeco de clase

{

  estático vacío Principal ( )

  {

Lista < cadena > l = lista nueva < cadena > ( ) { 'Opio negro' , 'Bomba' , 'GucciFlora' } ;

era perfume = l. Al diccionario ( X => X , X => verdadero , Comparador de cadenas. OrdinalIgnorarCaso ) ;

    si ( Perfume. Contiene clave ( 'bomba' ) )

    {

Consola. Línea de escritura ( 'El bombazo existe' ) ;

    }

  }

}

Dado que el diccionario se crea con una comparación que no distingue entre mayúsculas y minúsculas, la clave 'bombshell' coincide con la clave 'Bombshell' real en el diccionario. Como resultado, el mensaje 'Bombshell existe' se imprime en la consola como se muestra en la siguiente imagen de salida adjunta:



Ejemplo 2:

En el ejemplo de código anterior, demostramos cómo una colección simple se puede convertir en un diccionario mediante la función ToDictionary. Ahora, avanzaremos hacia un pequeño ejemplo de código avanzado de C# para la demostración de los usos de la función ToDictionary de C#. Analicemos el código línea por línea.

Este fragmento de código de ilustración comienza incorporando los mismos espacios de nombres obligatorios: System, System.Collections.Generic y System.Linq. Estos espacios de nombres proporcionan las clases y métodos de extensión necesarios para trabajar con colecciones y LINQ para este ejemplo de código. Se define la clase 'Dummy', que es un punto de entrada.

Dentro del método 'Principal' del lenguaje C#, se forma una lista denominada 'L'. Esta lista contiene tres objetos de la clase “Datos” que representan los diferentes productos cosméticos con sus precios y marcas. Cada objeto de datos se inicializa utilizando la sintaxis del inicializador de objetos. Las propiedades “Precio” y “Marca” de cada objeto se establecen con valores específicos.

Aquí viene el método ToDictionary. Se llama aquí en la lista 'L'. Convierte la lista en un diccionario donde la propiedad 'Precio' se usa como clave y la propiedad 'Marca' como valor. El diccionario resultante se asigna a la variable 'Dic' como se menciona en el siguiente fragmento de código proporcionado. Se lanza un bucle 'foreach' para invocar los pares clave-valor en el diccionario 'Dic'.

Dentro del bucle, se accede a la clave y el valor de cada par utilizando las propiedades 'Clave' y 'Valor' de la estructura KeyValuePair. La declaración de función Console.WriteLine imprime cada par clave-valor en la consola. La salida se formatea utilizando la interpolación de cadenas para mostrar el precio y la información de la marca por separado.

Aquí, la clase “Datos” se define con dos propiedades: “Precio” (un número entero que representa el precio de un producto cosmético) y “Marca” (una cadena que representa la marca de un producto).

usando el sistema ;

utilizando el sistema. Colecciones . Genérico ;

utilizando el sistema. Linq ;

muñeco de clase

{

  estático vacío Principal ( )

  {

Lista < Datos > l = lista nueva < Datos > ( )

    {

nuevos datos { Precio = 13000 , Marca = 'Belleza Huda' } ,

nuevos datos { Precio = 15000 , Marca = 'Charlotte Telburry' } ,

nuevos datos { Precio = 11000 , Marca = 'Nars' }

    } ;

Diccionario < En t , cadena > Dic = l. Al Diccionario ( pag => pag. Precio , pag => pag. Marca ) ;

para cada ( var v en Dic )

    {

Consola. Línea de escritura ( $ 'Precio: {v.Key}, Marca: {v.Value}' ) ;

    }

  }

}

datos de clase

{

público En t Precio { conseguir ; colocar ; }

marca de cadena pública { conseguir ; colocar ; }

}

Cuando se ejecuta el código, crea una lista de objetos de datos, convierte la lista en un diccionario usando el método ToDictionary y luego muestra los pares clave-valor del diccionario usando el bucle 'foreach'.

El resultado de este ejemplo de código se proporciona a continuación. Muestra los precios y las marcas de productos cosméticos almacenados en el diccionario según propiedades específicas, lo que proporciona una manera conveniente de organizar y acceder a los datos en pares clave-valor. El resultado del código anterior muestra tres registros para el diccionario:

Conclusión

Esta guía de C# demostró el uso del método ToDictionary de C# a través de algunas ilustraciones de código básicas y precisas. Al ofrecer un mecanismo claro y expresivo para describir los pares clave-valor, el método ToDictionary facilita convertir una colección en un diccionario. Es una potente utilidad de C# para manipular y transformar los datos.