Prüfen auf das Vorhandensein eines Dictionary-Schlüssels in C#
-
Verwenden Sie
try-catch
, um die Existenz eines Dictionaryschlüssels inC#
zu prüfen -
Verwenden Sie
ContainsKey()
, um die Existenz eines Dictionaryschlüssels inC#
zu prüfen -
Verwenden Sie
TryGetValue()
, um die Existenz eines Dictionaryschlüssels inC#
zu prüfen
Ein Dictionary
tendiert dazu, Schlüssel und Werte abzubilden. Es enthält einen bestimmten Schlüssel, dem ein bestimmter Wert zugeordnet ist. Doppelte Schlüssel sind nicht erlaubt, und das ist das ganze Ziel eines Dictionary
.
Heute schauen wir uns an, wie wir prüfen können, ob ein Schlüssel bereits in einem Dictionary
existiert oder nicht.
Verwenden Sie try-catch
, um die Existenz eines Dictionaryschlüssels in C#
zu prüfen
Beginnen wir zunächst mit der Erstellung eines Dictionarys namens Studenten
, das jede spezifische Studenten-ID dem CGPA zuordnet:
Dictionary<int, double> students = new Dictionary<int, double>();
students[101] = 3.22;
students[102] = 3.44;
students[103] = 2.98;
Da die CGPAs im Double-Format vorliegen sollen, haben wir für IDs und CGPAs jeweils <TKEY, TVALUE>
als <int, double>
definiert.
Nehmen wir an, wir wollen herausfinden, ob es einen Eintrag für den Studenten 102
in students
gibt. Das tut es, aber wir brauchen einen Code, um uns das klar zu sagen.
Dazu können wir eine try-catch
-Ausnahme wie folgt verwenden:
try {
Console.WriteLine(students[102].ToString());
} catch (Exception e) {
Console.WriteLine("No such key present");
}
AUSGANG:
3.44
Aber wenn wir jetzt versuchen, dasselbe für den Schüler 104
zu tun, passiert Folgendes:
AUSGANG:
No such key present
Wieso den? Nun, die Methode ToString()
funktioniert nur für Werte, die nicht null sind. Da Student 104
null ist und keinen Eintrag in students
hat, tritt eine Ausnahme auf.
Und anstatt die Ausnahme auszulösen, neigen wir dazu, sie abzufangen und die Meldung “Kein solcher Schlüssel vorhanden” in der Konsole anzuzeigen.
Es ist also eine effektive Methode, um zu überprüfen, ob ein Schlüssel vorhanden ist. Aber können wir es einfacher machen?
Verwenden Sie ContainsKey()
, um die Existenz eines Dictionaryschlüssels in C#
zu prüfen
Beachten Sie den folgenden Code:
if (!students.ContainsKey(104)) {
Console.WriteLine("No such key present");
}
Dies wird einen Fehler darstellen, da kein solcher Schlüssel vorhanden ist.
AUSGANG:
No such key present
Verwenden Sie TryGetValue()
, um die Existenz eines Dictionaryschlüssels in C#
zu prüfen
Wenn wir Folgendes tun:
double getval = 0.0;
if (!students.TryGetValue(104, out getval)) {
Console.WriteLine("No such key present");
}
Dies neigt dazu, die Ausgabe wie folgt zurückzugeben:
No such key present
Der TryGetValue()
tendiert dazu, einen Wert für einen Schlüssel zu erhalten, falls er existiert. Der Wert wird im zweiten Parameter erhalten.
Daher wird es mit dem Schlüsselwort out
gesendet. Und die Variable, um diesen Wert zu erhalten, wird vor dem Gültigkeitsbereich deklariert, der getval
ist.
Der vollständige Code für all diese verschiedenen Methoden ist unten enthalten:
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