Dicionários
O dicionário (Dictionary<TKey, TValue>
) é uma coleção genérica em C# que armazena pares de chave e valor, permitindo acesso rápido aos valores por meio de uma chave única. É uma estrutura fundamental para representar dados associados, como nomes e idades, códigos e produtos, entre outros.
Como Declarar e Inicializar um Dicionário
Para usar um dicionário, adicione o namespace:
using System.Collections.Generic;
Exemplo de declaração:
Dictionary<int, string> dict = new Dictionary<int, string>();
Neste exemplo, as chaves são do tipo int
e os valores do tipo string
. Você pode usar qualquer tipo válido em C# para chaves e valores.
Inicialização com valores:
Dictionary<int, string> frutas = new Dictionary<int, string>()
{
{1, "Banana"},
{2, "Laranja"},
{3, "Manga"},
{4, "Abacate"},
{5, "Maçã"}
};
Pode também inicializar usando o método Add
:
frutas.Add(6, "Pera");
Ou usando o indexador:
frutas[7] = "Uva";
Principais Operações
- Adicionar elementos:
dicionario.Add(chave, valor);
oudicionario[chave] = valor;
- Acessar valores:
var valor = dicionario[chave];
- Remover elementos:
dicionario.Remove(chave);
- Verificar existência de chave:
dicionario.ContainsKey(chave);
- Verificar existência de valor:
dicionario.ContainsValue(valor);
- Obter o número de elementos:
dicionario.Count;
Percorrendo um Dicionário
Pode percorrer todos os pares chave-valor usando foreach
:
foreach (KeyValuePair<int, string> item in frutas)
{
Console.WriteLine($"Chave: {item.Key}, Valor: {item.Value}");
}
Ou de forma simplificada:
foreach (var item in frutas)
{
Console.WriteLine($"{item.Key}: {item.Value}");
}
Exemplo Completo
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Dictionary<string, int> idades = new Dictionary<string, int>();
idades.Add("Ana", 25);
idades["Bruno"] = 30;
if (idades.ContainsKey("Ana"))
Console.WriteLine($"Idade de Ana: {idades["Ana"]}");
foreach (var par in idades)
Console.WriteLine($"{par.Key}: {par.Value}");
idades.Remove("Ana");
Console.WriteLine($"Total de pessoas: {idades.Count}");
}
}
Dicas e Observações
- As chaves devem ser únicas; adicionar uma chave já existente gera exceção.
- O acesso por chave é muito rápido, ideal para buscas e associações.
- O tipo genérico garante segurança de tipos em tempo de compilação, evitando erros de conversão.