Método C# ToDictionary

Metodo C Todictionary



A função ToDictionary em C# é uma função de extensão LINQ que permite transformar uma coleção de dados em um dicionário que oferece uma maneira clara e prática de mapear as entidades para chaves distintas e valores relacionados. Requer dois argumentos, dois delegados ou expressões lambda, um para escolher a chave e outro adicional para escolher o valor de cada objeto na coleção. Neste artigo, utilizaremos alguns exemplos de código C# para demonstrar os usos da função ToDictionary.

Sintaxe:

Vamos detalhar e entender cada componente fornecido na seguinte sintaxe da função C# ToDictionary, um por um:



foi ditado = coleção. ParaDicionário ( seletor de chave , elementoSeletor ) ;
  • A palavra-chave “var” é eliminada aqui para definir a categoria de tipo do dicionário “dict” resultante. Na maioria dos casos, é Dictionary onde K é o tipo da chave e V é a categoria de tipo do valor do dicionário.
  • O elemento “coleção” representa a coleção de origem que você deseja converter em um dicionário “dict”. Pode ser qualquer classe que implemente a interface IEnumerable, como uma lista, array ou resultado de consulta.
  • A palavra-chave “keySelector” é um delegado ou expressão lambda que especifica como extrair a chave de cada item da coleção. Ele obtém um elemento da coleção como argumento e retorna o valor-chave desse item. A chave deve ser única para cada item da coleção, pois os dicionários não podem ter chaves duplicadas.
  • A palavra-chave “elementSelector” refere-se a um delegado ou expressão lambda que especifica como extrair o valor de cada item da coleção. Ele também obtém um elemento da coleção como argumento e produz o valor desse item.

Após executar a função ToDictionary, você terá um novo objeto de dicionário onde cada item da coleção é representado como um par chave-valor.







Exemplo 1:

Vamos começar do zero neste guia, demonstrando o uso da função ToDictionary em C# com a ajuda de um exemplo de código. Vamos examinar isso passo a passo.



O código começa com os namespaces necessários sendo importados: System, System.Collections.Generic e System.Linq. Esses namespaces fornecem as classes e métodos de extensão necessários para trabalhar com coleções e LINQ. É definida a classe “Dummy” que contém o método “Main” deste programa C#.



Dentro do método “Main”, é criada uma lista chamada “L”. Esta lista contém três elementos de string que representam os nomes dos diferentes perfumes de escolha do usuário. O método ToDictionary é chamado na lista “L”. Ele converte a lista em um dicionário. Cada elemento de string na lista serve tanto como chave quanto como valor no dicionário resultante.





O dicionário é criado com uma comparação de chaves que não diferencia maiúsculas de minúsculas usando o parâmetro StringComparer.OrdinalIgnoreCase, que é usado principalmente para especificar uma comparação que não diferencia maiúsculas de minúsculas ao verificar a existência de chaves. Uma instrução “if” verifica se o dicionário contém a chave “bombshell” enquanto ignora seu caso. Se a chave for encontrada, o trecho de código na seção “if” será processado. Dentro do bloco “if”, a instrução Console.WriteLine (“Bombshell existe”) é executada, imprimindo a mensagem “Bombshell existe” no console.

usando o sistema ;

usando Sistema. Coleções . Genérico ;

usando Sistema. Linq ;

manequim de classe

{

estático vazio Principal ( )

{

Lista < corda > eu = nova lista < corda > ( ) { 'Ópio Negro' , 'Bomba' , 'GucciFlora' } ;

era Perfume = EU. ParaDicionário ( x => x , x => verdadeiro , Comparador de String. OrdinalIgnoreCase ) ;

se ( Perfume. ContémKey ( 'bomba' ) )

{

Console. WriteLine ( 'A bomba existe' ) ;

}

}

}

Como o dicionário é criado com uma comparação que não diferencia maiúsculas de minúsculas, a chave “bombshell” corresponde à chave “Bombshell” real no dicionário. Como resultado, a mensagem “Bombshell existe” é impressa no console conforme exibido na seguinte imagem de saída anexada:



Exemplo 2:

No exemplo de código anterior, demonstramos como uma coleção simples pode ser convertida em um dicionário por meio da função ToDictionary. Agora, avançaremos para um pequeno exemplo de código avançado de C# para a demonstração dos usos da função C# ToDictionary. Vamos dividir o código linha por linha.

Este trecho de código de ilustração começa trazendo os mesmos namespaces obrigatórios: System, System.Collections.Generic e System.Linq. Esses namespaces fornecem as classes e métodos de extensão necessários para trabalhar com coleções e LINQ para este exemplo de código. É definida a classe “Dummy”, que é um ponto de entrada.

Dentro do método “Main” da linguagem C#, uma lista chamada “L” é formada. Esta lista contém três objetos da classe “Dados” que representam os diferentes produtos cosméticos com seus preços e marcas. Cada objeto de dados é inicializado usando a sintaxe do inicializador de objeto. As propriedades “Preço” e “Marca” de cada objeto são definidas com valores específicos.

Aí vem o método ToDictionary. É chamado aqui na lista “L”. Ele converte a lista em um dicionário onde a propriedade “Price” é usada como chave e a propriedade “Brand” como valor. O dicionário resultante é atribuído à variável “Dic”, conforme mencionado no trecho de código fornecido a seguir. Um loop “foreach” é eliminado para chamar os pares de valores-chave no dicionário “Dic”.

Dentro do loop, a chave e o valor de cada par são acessados ​​usando as propriedades “Key” e “Value” da estrutura KeyValuePair. A instrução da função Console.WriteLine imprime cada par de valores-chave no console. A saída é formatada usando a interpolação de string para exibir as informações de preço e marca separadamente.

Aqui, a classe “Data” é definida com duas propriedades: “Price” (um número inteiro que representa o preço de um produto cosmético) e “Brand” (uma string que representa o nome da marca de um produto).

usando o sistema ;

usando Sistema. Coleções . Genérico ;

usando Sistema. Linq ;

manequim de classe

{

estático vazio Principal ( )

{

Lista < Dados > eu = nova lista < Dados > ( )

{

novos dados { Preço = 13.000 , Marca = 'Huda Beleza' } ,

novos dados { Preço = 15.000 , Marca = 'Charlotte Telburry' } ,

novos dados { Preço = 11.000 , Marca = 'Nars' }

} ;

Dicionário < interno , corda > dezembro = EU. ParaDicionário ( p => pág. Preço , p => pág. Marca ) ;

para cada ( var v em Dic )

{

Console. WriteLine ( $ 'Preço: {v.Key}, Marca: {v.Value}' ) ;

}

}

}

dados de classe

{

público interno Preço { pegar ; definir ; }

string pública Marca { pegar ; definir ; }

}

Quando o código é executado, ele cria uma lista de objetos de dados, converte a lista em um dicionário usando o método ToDictionary e, em seguida, exibe os pares chave-valor do dicionário usando o loop “foreach”.

A saída para este exemplo de código é fornecida a seguir. Mostra os preços e marcas de produtos cosméticos que estão armazenados no dicionário com base em propriedades específicas, proporcionando uma forma conveniente de organizar e acessar os dados em pares de valores-chave. A saída do código anterior mostra três registros para o dicionário:

Conclusão

Este guia C# demonstrou o uso do método C# ToDictionary por meio de algumas ilustrações de código básicas e precisas. Ao oferecer um mecanismo claro e expressivo para descrever os pares chave-valor, o método ToDictionary facilita a transformação de uma coleção em um dicionário. É um utilitário C# forte para manipular e transformar os dados.