Junior
¿Cómo obtener el valor por clave en un diccionario en C#?
sobes.tech AI
Respuesta de la IA
Se puede usar el indexador con clave o el método TryGetValue.
-
Indexador (
[clave]):- Devuelve el valor por la clave especificada.
- Lanza
KeyNotFoundExceptionsi la clave no existe.
// Ejemplo de uso del indexador Dictionary<string, int> edades = new Dictionary<string, int>(); edades["Alice"] = 30; int edadAlice = edades["Alice"]; // Obtenemos el valor // edades["Bob"]; // Lanzará KeyNotFoundException si no existe la clave "Bob" -
Método
TryGetValue(clave, out valor):- Intenta encontrar el valor por la clave especificada.
- Retorna
truesi la clave se encuentra y asigna el valor a la variablevalor. - Retorna
falsesi la clave no se encuentra, yvalortendrá el valor por defecto para el tipo. - Es más seguro al trabajar con claves potencialmente ausentes.
// Ejemplo de uso de TryGetValue Dictionary<string, int> edades = new Dictionary<string, int>(); edades["Alice"] = 30; int edadAlice; if (edades.TryGetValue("Alice", out edadAlice)) { // La clave "Alice" fue encontrada, edadAlice contiene 30 // ... usar edadAlice } int edadBob; if (edades.TryGetValue("Bob", out edadBob)) { // Este bloque no se ejecutará, ya que no existe la clave "Bob" } else { // La clave "Bob" no fue encontrada, edadBob será 0 (valor por defecto para int) }
También se puede usar el método GetValueOrDefault(clave) (en .NET Core 2.1+ y .NET Standard 2.1+), que devuelve el valor por la clave o el valor por defecto si no se encuentra.
// Ejemplo de uso de GetValueOrDefault
Dictionary<string, int> edades = new Dictionary<string, int>();
edades["Alice"] = 30;
int edadAlice = edades.GetValueOrDefault("Alice"); // 30
int edadBob = edades.GetValueOrDefault("Bob"); // 0 (valor por defecto)