Dictionary<TKey, TValue>에서 안전하게 키 검색하기 with TryGetValue
Dictionary에서 키가 존재하는지 먼저 확인하고 값을 가져오는
전통적인 방법은 ContainsKey()로 확인 후 인덱서로 접근하는 것입니다.
그러나 TryGetValue()를 사용하면 한 번의 호출로 키 존재 여부와
값을 동시에 처리할 수 있어 더 효율적입니다.
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Dictionary<string, int> scores = new Dictionary<string, int>
{
{ "Alice", 95 },
{ "Bob", 87 }
};
if (scores.TryGetValue("Bob", out int score))
{
Console.WriteLine($"Bob의 점수는 {score}점입니다.");
}
else
{
Console.WriteLine("해당 사용자를 찾을 수 없습니다.");
}
}
}
출력 결과
Bob의 점수는 87점입니다.
TryGetValue()는 키가 존재하지 않을 경우에도 예외 없이 안전하게 처리됩니다.
성능 면에서도 ContainsKey() + 인덱서 접근보다 효율적입니다.
out 변수에 값을 직접 할당하므로 코드가 간결해지고 가독성이 향상됩니다.
.NET 7부터는 TryAdd()와 함께 TryGetValue()를 자주 쓰면 동시성 문제도 줄일 수 있습니다.

#CSharp딕셔너리사용법 #TryGetValue활용 #Dictionary키조회 #DotNet컬렉션팁
#CleanCodeDictionary #딕셔너리예외처리 #키존재확인 #out매개변수활용
#TryGetValue예제 #딕셔너리성능개선
'CSharp > CSharp 문법' 카테고리의 다른 글
var 키워드로 코드 가독성과 유지보수 향상하기 (0) | 2025.06.23 |
---|---|
using 문으로 리소스를 안전하게 해제하기 (0) | 2025.06.19 |
string.IsNullOrWhiteSpace()로 문자열 유효성 쉽게 검사하기 (0) | 2025.06.16 |
File.ReadAllLines()로 파일 전체를 배열로 쉽게 읽기 (0) | 2025.06.11 |
lock 키워드로 멀티스레드 동기화 처리하기 (0) | 2025.06.05 |
댓글