C#

C# Dictionary ContainsKey() vs TryGetValue()

코샵 2023. 3. 28. 14:09
반응형

소개

C#에서 Dictionary는 키-값 쌍을 저장하는 일반적으로 사용되는 컬렉션입니다. Dictionary 작업 중에는 특정 키가 있는지 확인하거나 키와 연결된 값을 검색해야 할 수 있습니다. 이 블로그 포스트에서는 이러한 목표를 달성하는 데 사용되는 두 가지 방법을 살펴보겠습니다


ContainsKey() 메서드

ContainsKey() 메서드는 Dictionary에 지정된 키가 있는지 확인하는 데 사용됩니다. 이 메서드는 키가 Dictionary에 있는지 여부를 나타내는 부울 값이 반환됩니다.

Dictionary<string, int> myDictionary = new Dictionary<string, int>();

// Dictionary에 일부 키-값 쌍 추가
myDictionary.Add("apple", 1);
myDictionary.Add("banana", 2);
myDictionary.Add("orange", 3);

// Dictionary에 키가 있는지 확인
if (myDictionary.ContainsKey("apple"))
{
    Console.WriteLine("Dictionary에 'apple' 키가 있습니다.");
}
else
{
    Console.WriteLine("Dictionary에 'apple' 키가 없습니다.");
}

위의 예에서는 Dictionary를 생성하고 일부 키-값 쌍을 추가합니다. 그런 다음 ContainsKey()를 사용하여 "apple" 키가 Dictionary에 있는지 확인합니다.


TryGetValue() 메서드

TryGetValue() 메서드는 Dictionary에서 지정된 키와 연결된 값을 검색하는 데 사용됩니다. 이 메서드는 키가 Dictionary에 있는지 여부를 나타내는 부울 값을 반환하고, 키와 연결된 값이 있으면 출력합니다.

Dictionary<string, int> myDictionary = new Dictionary<string, int>();

// Dictionary에 일부 키-값 쌍 추가
myDictionary.Add("apple", 1);
myDictionary.Add("banana", 2);
myDictionary.Add("orange", 3);

// 키와 연결된 값을 검색
if (myDictionary.TryGetValue("apple", out int value))
{
    Console.WriteLine("'apple' 키의 값은 {0} 입니다.", value);
}
else
{
    Console.WriteLine("Dictionary에서 'apple' 키를 찾을 수 없습니다.");
}

위의 예에서는 Dictionary를 생성하고 일부 키-값 쌍을 추가합니다. 그런 다음 TryGetValue()를 사용하여 "apple" 키와 연결된 값을 검색합니다. 키가 존재하는 경우 메서드는 키와 연결된 값을 출력합니다.


어떤 방법을 사용해야 할까요?

ContainsKey()와 TryGetValue() 모두 비슷한 목표를 달성하는 데 사용할 수 있지만, 일부 차이점이 있습니다.

  • ContainsKey()는 Dictionary에 키가 있는지 여부를 나타내는 부울 값을 반환합니다. 그러나 키와 연결된 값을 출력하지 않습니다.
  • TryGetValue()는 Dictionary에 키가 있는지 여부를 나타내는 부울 값을 반환하고, 키와 연결된 값을 출력합니다.

따라서 Dictionary에 키가 있는지만 확인하려면 ContainsKey()를 사용하고, 키와 연결된 값을 검색해야하는 경우 TryGetValue()를 사용하면 됩니다.


결론

이 블로그 포스트에서는 C#에서 Dictionary를 사용하는 두 가지 방법인 ContainsKey()와 TryGetValue()를 살펴보았습니다. 두 메서드 모두 비슷한 목표를 달성하는 데 사용할 수 있지만, 기능에 일부 차이점이 있습니다. 이러한 차이점을 이해하여 특정 사용 사례에 적합한 방법을 선택할 수 있습니다.