Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# StringDictionary에 특정 값이 포함되어 있는지 확인하는 방법

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의 키는 기본적으로 대소문자를 구분하지 않습니다. 따라서 대문자로 추가한 키가 출력 시 소문자로 표시될 수 있습니다.