Comprobar la existencia de una clave de diccionario en C#
-
Utilice
try-catch
para comprobar la existencia de una clave de diccionario enC#
-
Utilice
ContainsKey()
para comprobar la existencia de una clave de diccionario enC#
-
Utilice
TryGetValue()
para comprobar la existencia de una clave de diccionario enC#
![Comprobar la existencia de una clave de diccionario en C#](/img/Csharp/feature-image---csharp-check-if-dictionary-has-key.webp)
Un Diccionario
tiende a mapear claves y valores. Contiene una clave específica a la que se asigna un valor particular. No se permiten claves duplicadas, y ese es el objetivo de un Diccionario
.
Hoy veremos cómo podemos verificar si una clave ya existe en un Diccionario
o no.
Utilice try-catch
para comprobar la existencia de una clave de diccionario en C#
Comencemos primero con la creación de un diccionario llamado students
que asigna cada ID de estudiante específico al CGPA:
Dictionary<int, double> students = new Dictionary<int, double>();
students[101] = 3.22;
students[102] = 3.44;
students[103] = 2.98;
Debido a que se supone que los CGPA están en formato doble, hemos definido <TKEY, TVALUE>
como <int, double>
respectivamente para ID y CGPA.
Digamos que queremos encontrar si existe una entrada para el estudiante 102
en students
. Sí, pero necesitamos un código que nos lo diga directamente.
Entonces, para hacer eso, podemos usar una excepción try-catch
de la siguiente manera:
try {
Console.WriteLine(students[102].ToString());
} catch (Exception e) {
Console.WriteLine("No such key present");
}
Producción :
3.44
Pero si ahora tratamos de hacer lo mismo para el estudiante 104
, sucede lo siguiente:
Producción :
No such key present
¿Por qué? Bueno, el método ToString()
solo funciona para valores que no son nulos. Debido a que el estudiante 104
es nulo y no tiene ninguna entrada en estudiantes
, se produce una excepción.
Y en lugar de lanzar la excepción, tendemos a atraparla y presentar el mensaje No such key present
en la consola.
Por lo tanto, es una forma efectiva de verificar si una clave está presente. Pero, ¿podemos hacerlo más simple?
Utilice ContainsKey()
para comprobar la existencia de una clave de diccionario en C#
Observa el siguiente código:
if (!students.ContainsKey(104)) {
Console.WriteLine("No such key present");
}
Esto presentará un error porque tal clave no está presente.
Producción :
No such key present
Utilice TryGetValue()
para comprobar la existencia de una clave de diccionario en C#
Si hacemos lo siguiente:
double getval = 0.0;
if (!students.TryGetValue(104, out getval)) {
Console.WriteLine("No such key present");
}
Esto tiende a devolver la salida de la siguiente manera:
No such key present
El TryGetValue()
tiende a obtener un valor para una clave si existe. El valor se obtiene en el segundo parámetro.
Por lo tanto, se envía con la palabra clave out
. Y la variable para obtener este valor se declara antes del ámbito, que es getval
.
El código completo para todos estos métodos diferentes se ha incluido a continuación:
using System;
using System.Collections.Generic;
using System.Text;
namespace jinlku_console {
class coder {
static void Main(String[] args) {
Dictionary<int, double> students = new Dictionary<int, double>();
students[101] = 3.22;
students[102] = 3.44;
students[103] = 2.98;
// TRY CATCH BLOCK
try {
Console.WriteLine(students[104].ToString());
} catch (Exception e) {
Console.WriteLine("No such key present");
}
// CONTAINS KEY METHOD
if (!students.ContainsKey(104)) {
Console.WriteLine("No such key present");
}
// TRYGETVALUE
double getval = 0.0;
if (!students.TryGetValue(104, out getval)) {
Console.WriteLine("No such key present");
}
}
}
}
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub