C# で辞書キーが存在するかどうかを確認する
-
C#
でtry-catch
を使用して辞書のキーが存在するかどうかを確認する -
C#
にContainsKey()
を使用して辞書キーが存在するかどうかを確認する -
C#
にTryGetValue()
を使用して辞書キーが存在するかどうかを確認する
辞書
は、キーと値をマップする傾向があります。これには、特定の値がマップされる特定のキーが含まれています。重複するキーは許可されていません。それが辞書
の全体的な目標です。
今日は、キーが辞書
にすでに存在するかどうかを確認する方法を見ていきます。
C#
で try-catch
を使用して辞書のキーが存在するかどうかを確認する
まず、特定の各学生 ID を CGPA にマップする students
という辞書の作成から始めましょう。
Dictionary<int, double> students = new Dictionary<int, double>();
students[101] = 3.22;
students[102] = 3.44;
students[103] = 2.98;
CGPA は double 形式であると想定されているため、ID と CGPA に対してそれぞれ <TKEY, TVALUE>
を <int, double>
として定義しました。
students
に学生 102
のエントリが存在するかどうかを調べたいとします。確かにそうですが、私たちにまっすぐに伝えるためのコードが必要です。
そのために、次のように try-catch
例外を使用できます。
try {
Console.WriteLine(students[102].ToString());
} catch (Exception e) {
Console.WriteLine("No such key present");
}
出力:
3.44
しかし、学生 104
に対して同じことをしようとすると、次のようになります。
出力:
No such key present
なんで?まあ、ToString()
メソッドは null ではない値に対してのみ機能します。学生 104
は null であり、students
にエントリがないため、例外が発生します。
そして、例外をスローするのではなく、それをキャッチして、コンソールにそのようなキーはありません
というメッセージを表示する傾向があります。
したがって、キーが存在するかどうかを確認するのに効果的な方法です。しかし、それをもっと簡単にすることはできますか?
C#
に ContainsKey()
を使用して辞書キーが存在するかどうかを確認する
次のコードを確認してください。
if (!students.ContainsKey(104)) {
Console.WriteLine("No such key present");
}
そのようなキーが存在しないため、これはエラーを提示します。
出力:
No such key present
C#
に TryGetValue()
を使用して辞書キーが存在するかどうかを確認する
次のことを行う場合:
double getval = 0.0;
if (!students.TryGetValue(104, out getval)) {
Console.WriteLine("No such key present");
}
これは、次のように出力を返す傾向があります。
No such key present
TryGetValue()
は、キーが存在する場合、その値を取得する傾向があります。値は 2 番目のパラメーターで取得されます。
したがって、out
キーワードで送信されます。そして、この値を取得するための変数は、スコープの前に宣言されています。これは getval
です。
これらのさまざまなメソッドすべての完全なコードは、以下に含まれています。
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