C#에서 StringDictionary 컬렉션에 특정 값(Value)이 존재하는지 확인하려면 ContainsValue() 메서드를 사용합니다. 이 메서드는 지정한 값이 컬렉션 안에 있으면 True, 없으면 False를 반환합니다.
참고로 키(Key)의 존재 여부를 확인할 때는 ContainsKey() 메서드를 사용하며, 두 메서드 모두 Boolean 값을 반환한다는 점을 기억해 두면 좋습니다.
예제
using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
public static void Main(){
StringDictionary strDict1 = new StringDictionary();
strDict1.Add("A", "John");
strDict1.Add("B", "Andy");
strDict1.Add("C", "Tim");
strDict1.Add("D", "Ryan");
strDict1.Add("E", "Kevin");
strDict1.Add("F", "Katie");
strDict1.Add("G", "Brad");
Console.WriteLine("StringDictionary1 elements...");
foreach(DictionaryEntry d in strDict1){
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("Does StringDictionary1 has key G? "+strDict1.ContainsKey("G"));
Console.WriteLine("Does StringDictionary1 has value Ryan? "+strDict1.ContainsValue("Ryan"));
StringDictionary strDict2 = new StringDictionary();
strDict2.Add("A", "John");
strDict2.Add("B", "Andy");
strDict2.Add("C", "Tim");
strDict2.Add("D", "Ryan");
strDict2.Add("E", "Kevin");
strDict2.Add("F", "Katie");
strDict2.Add("G", "Brad");
Console.WriteLine("\nStringDictionary2 elements...");
foreach(DictionaryEntry d in strDict2){
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("\nIs Dictionary2 equal to Dictionary1? = "+strDict2.Equals(strDict1));
Console.WriteLine("Does StringDictionary2 has key B? "+strDict2.ContainsKey("B"));
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
StringDictionary1 elements... a John b Andy c Tim d Ryan e Kevin f Katie g Brad Does StringDictionary1 has key G? True Does StringDictionary1 has value Ryan? True StringDictionary2 elements... a John b Andy c Tim d Ryan e Kevin f Katie g Brad Is Dictionary2 equal to Dictionary1? = False Does StringDictionary2 has key B? True
출력 결과를 보면, 키 "G"와 값 "Ryan"은 StringDictionary1에 실제로 존재하기 때문에 두 확인 모두 True를 반환했습니다.
값이 존재하지 않는 경우의 예제
이번에는 컬렉션에 없는 키와 값을 조회했을 때 어떤 결과가 나오는지 살펴보겠습니다.
using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
public static void Main(){
StringDictionary strDict1 = new StringDictionary();
strDict1.Add("U", "Electronics");
strDict1.Add("V", "Toys");
strDict1.Add("W", "Books");
strDict1.Add("X", "Accessories");
Console.WriteLine("StringDictionary1 elements...");
foreach(DictionaryEntry d in strDict1){
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("Does StringDictionary1 has key G? "+strDict1.ContainsKey("G"));
Console.WriteLine("Does StringDictionary1 has value Footwear? "+strDict1.ContainsValue("Footwear"));
StringDictionary strDict2 = new StringDictionary();
strDict2.Add("A", "John");
strDict2.Add("B", "Andy");
strDict2.Add("C", "Tim");
strDict2.Add("D", "Ryan");
strDict2.Add("E", "Kevin");
strDict2.Add("F", "Katie");
strDict2.Add("G", "Brad");
Console.WriteLine("\nStringDictionary2 elements...");
foreach(DictionaryEntry d in strDict2){
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("\nIs Dictionary2 equal to Dictionary1? = "+strDict2.Equals(strDict1));
Console.WriteLine("Does StringDictionary2 has key B? "+strDict2.ContainsKey("B"));
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
StringDictionary1 elements... x Accessories u Electronics v Toys w Books Does StringDictionary1 has key G? False Does StringDictionary1 has value Footwear? False StringDictionary2 elements... a John b Andy c Tim d Ryan e Kevin f Katie g Brad Is Dictionary2 equal to Dictionary1? = False Does StringDictionary2 has key B? True
정리
ContainsValue(String value): StringDictionary에 해당 값이 있으면True, 없으면False를 반환합니다.ContainsKey(String key): StringDictionary에 해당 키가 있으면True, 없으면False를 반환합니다.- StringDictionary의 키는 기본적으로 대소문자를 구분하지 않습니다. 따라서 대문자로 추가한 키가 출력 시 소문자로 표시될 수 있습니다.