Sobes.tech
Junior

O que é um dicionário em C#?

sobes.tech IA

Resposta da IA

O dicionário (Dictionary) em C# é uma coleção que armazena pares de "chave-valor", onde cada chave é única e é usada para acesso rápido ao valor correspondente. Implementa as interfaces IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable. É baseado numa tabela de hash.

Principais características:

  • Não ordenado: A ordem dos elementos no dicionário não é garantida e pode mudar ao adicionar/remover elementos.
  • Desempenho: As operações de adicionar, remover e procurar por chave têm uma complexidade média de O(1) (no caso ideal, sem colisões de hash) e O(n) no pior caso.
  • Unicidade das chaves: Cada chave deve ser única no dicionário. Tentar adicionar um elemento com uma chave existente provocará uma exceção.

Exemplo de uso:

// Criar um dicionário
Dictionary<string, int> estudantes = new Dictionary<string, int>();

// Adicionar elementos
estudantes.Add("Ivanov", 5);
estudantes["Petrov"] = 4; // Forma alternativa de adicionar/atualizar

// Verificar se a chave existe
if (estudantes.ContainsKey("Ivanov"))
{
    // Obter o valor pela chave
    int nota = estudantes["Ivanov"]; // nota == 5
}

// Percorrer os elementos
foreach (KeyValuePair<string, int> estudante in estudantes)
{
    // estudante.Key - chave, estudante.Value - valor
    Console.WriteLine($"{estudante.Key}: {estudante.Value}");
}

// Remover um elemento
estudantes.Remove("Petrov");

Comparação com outras coleções:

Coleção Propósito principal Acesso por índice Acesso por chave Unicidade das chaves Ordenação
List<T> Sequência de elementos Sim Não Não Sim
HashSet<T> Conjunto de elementos únicos Não Não Sim Não
Dictionary<TKey, TValue> Pares chave-valor para busca rápida Não Sim Sim Não