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 |