Junior
Como obter o valor por chave num dicionário em C#?
sobes.tech IA
Resposta da IA
Pode usar o indexador com uma chave ou o método TryGetValue.
-
Indexador (
[chave]):- Retorna o valor para a chave especificada.
- Lança uma
KeyNotFoundExceptionse a chave não existir.
// Exemplo de uso do indexador Dictionary<string, int> idades = new Dictionary<string, int>(); idades["Alice"] = 30; int idadeAlice = idades["Alice"]; // Obtém o valor // idades["Bob"]; // Lançará KeyNotFoundException se a chave "Bob" não existir -
Método
TryGetValue(chave, out valor):- Tenta encontrar o valor para a chave especificada.
- Retorna
truese a chave for encontrada e atribui o valor à variávelvalor. - Retorna
falsese a chave não for encontrada, evalorterá o valor padrão para o tipo. - É mais seguro ao trabalhar com chaves potencialmente ausentes.
// Exemplo de uso do TryGetValue Dictionary<string, int> idades = new Dictionary<string, int>(); idades["Alice"] = 30; int idadeAlice; if (idades.TryGetValue("Alice", out idadeAlice)) { // A chave "Alice" foi encontrada, idadeAlice contém 30 // ... usar idadeAlice } int idadeBob; if (idades.TryGetValue("Bob", out idadeBob)) { // Este bloco não será executado, pois a chave "Bob" não existe } else { // A chave "Bob" não foi encontrada, idadeBob será 0 (valor padrão para int) }
Também é possível usar o método GetValueOrDefault(chave) (no .NET Core 2.1+ e .NET Standard 2.1+), que retorna o valor para a chave ou o valor padrão se a chave não for encontrada.
// Exemplo de uso de GetValueOrDefault
Dictionary<string, int> idades = new Dictionary<string, int>();
idades["Alice"] = 30;
int idadeAlice = idades.GetValueOrDefault("Alice"); // 30
int idadeBob = idades.GetValueOrDefault("Bob"); // 0 (valor padrão)