C#에서 사전 키가 있는지 확인
-
try-catch
를 사용하여C#
에서 사전 키의 존재 여부 확인 -
ContainsKey()
를 사용하여C#
에서 사전 키의 존재 여부 확인 -
TryGetValue()
를 사용하여C#
에서 사전 키의 존재 여부 확인
Dictionary
는 키와 값을 매핑하는 경향이 있습니다. 여기에는 특정 값이 매핑되는 특정 키가 포함됩니다. 중복 키는 허용되지 않으며 이것이 사전
의 전체 목표입니다.
오늘 우리는 키가 이미 Dictionary
에 있는지 여부를 확인하는 방법을 살펴볼 것입니다.
try-catch
를 사용하여 C#
에서 사전 키의 존재 여부 확인
먼저 각 특정 학생 ID를 CGPA에 매핑하는 students
라는 사전을 만드는 것으로 시작하겠습니다.
Dictionary<int, double> students = new Dictionary<int, double>();
students[101] = 3.22;
students[102] = 3.44;
students[103] = 2.98;
CGPA는 이중 형식이어야 하므로 <TKEY, TVALUE>
를 ID 및 CGPA에 대해 각각 <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
에 항목이 없기 때문에 예외가 발생합니다.
그리고 예외를 던지기 보다는 그것을 잡아서 콘솔에 해당 키가 없습니다.
라는 메시지를 표시하는 경향이 있습니다.
따라서 키가 있는지 여부를 확인하는 효과적인 방법입니다. 하지만 더 간단하게 만들 수 있습니까?
ContainsKey()
를 사용하여 C#
에서 사전 키의 존재 여부 확인
다음 코드를 관찰하십시오.
if (!students.ContainsKey(104)) {
Console.WriteLine("No such key present");
}
해당 키가 없기 때문에 오류가 표시됩니다.
출력:
No such key present
TryGetValue()
를 사용하여 C#
에서 사전 키의 존재 여부 확인
다음을 수행하면:
double getval = 0.0;
if (!students.TryGetValue(104, out getval)) {
Console.WriteLine("No such key present");
}
이는 다음과 같이 출력을 반환하는 경향이 있습니다.
No such key present
TryGetValue()
는 키가 있는 경우 해당 값을 가져오는 경향이 있습니다. 값은 두 번째 매개변수에서 얻습니다.
따라서 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