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
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.