C#에서 ContainsValue() 메서드를 사용하면 Dictionary 컬렉션에 특정 값이 존재하는지 손쉽게 확인할 수 있습니다. 이 메서드는 해당 값이 Dictionary 안에 있으면 True, 없으면 False를 반환하는 불리언(Boolean) 타입의 결과를 제공합니다.
Dictionary 생성 및 요소 추가
먼저 Dictionary 객체를 만들고 Add() 메서드로 키와 값을 쌍으로 추가해 보겠습니다.
Dictionary<string, string> d = new Dictionary<string, string>();
d.Add("keyboard", "One");
d.Add("mouse", "Two");위 코드는 문자열 키(string)와 문자열 값(string)을 저장하는 Dictionary를 선언하고, 두 개의 요소를 추가한 예제입니다.
ContainsValue()로 값 검색하기
이제 ContainsValue() 메서드를 호출하여 특정 값이 Dictionary에 존재하는지 확인할 수 있습니다.
d.ContainsValue("Two");위 코드는 Dictionary에 "Two"라는 값이 있는지 검사하며, 존재하기 때문에 True를 반환합니다.
전체 예제 코드
다음은 지금까지 설명한 내용을 모두 담은 완전한 실행 코드입니다.
using System;
using System.Collections.Generic;
using System.Linq;
class Program {
static void Main() {
Dictionary<string, string> d = new Dictionary<string, string>();
d.Add("keyboard", "One");
d.Add("mouse", "Two");
// 값 검색
Console.WriteLine(d.ContainsValue("Two"));
}
}실행 결과
True
추가 팁: ContainsKey()와의 차이점
참고로 Dictionary에는 값뿐만 아니라 키(key)의 존재 여부를 확인하는 ContainsKey() 메서드도 제공됩니다. 키를 기준으로 검색할 때는 해시 기반 조회 덕분에 O(1)에 가까운 빠른 성능을 보이지만, ContainsValue()는 모든 값을 순회하며 비교하므로 대용량 데이터에서는 성능 차이를 고려하는 것이 좋습니다.