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

C#에서 대소문자 구분 옵션을 지정해 빈 HybridDictionary 생성하기


HybridDictionary는 저장된 항목 수가 적을 때는 ListDictionary로 동작하고, 항목 수가 많아지면 자동으로 Hashtable로 전환되는 특수 컬렉션입니다. System.Collections.Specialized 네임스페이스에 포함되어 있으며, 키(Key)와 값(Value) 쌍을 상황에 맞게 효율적으로 관리할 수 있습니다.

대소문자 구분 여부를 지정하여 빈 HybridDictionary를 만들려면 생성자 오버로드를 활용하면 됩니다.

  • new HybridDictionary() : 기본 생성자로, 대소문자를 구분하는(case-sensitive) 빈 사전을 생성합니다.
  • new HybridDictionary(true) : 대소문자를 구분하지 않는(case-insensitive) 빈 사전을 생성합니다.
  • new HybridDictionary(false) : 대소문자를 구분하는 빈 사전을 생성합니다(기본값과 동일).

예제 1: 기본 생성자로 HybridDictionary 만들기

다음은 기본 생성자를 사용해 HybridDictionary 객체를 생성하고, 여러 키/값 쌍을 추가한 뒤 전체 내용을 출력하는 예제입니다.

using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
   public static void Main() {
      HybridDictionary myDict = new HybridDictionary();
      myDict.Add("A", "AB");
      myDict.Add("B", "BC");
      myDict.Add("C", "DE");
      myDict.Add("D", "FG");
      myDict.Add("e", "fg");
      Console.WriteLine("Key/Value pairs...");
      foreach(DictionaryEntry de in myDict)
         Console.WriteLine("Key = "+de.Key + ", Value = " + de.Value);
   }
}

출력

위 프로그램을 실행하면 다음과 같은 결과가 나타납니다.

Key/Value pairs...
Key = A, Value = AB
Key = B, Value = BC
Key = C, Value = DE
Key = D, Value = FG
Key = e, Value = fg

예제 2: 대소문자만 다른 키의 공존 확인

기본 생성자로 만든 HybridDictionary는 대소문자를 구분하기 때문에, "D"와 "d"처럼 철자는 같지만 대소문자만 다른 키도 서로 다른 항목으로 저장할 수 있습니다. 다음 예제에서 이를 확인해 보겠습니다.

using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
   public static void Main() {
      HybridDictionary myDict = new HybridDictionary();
      myDict.Add("A", "PQ");
      myDict.Add("B", "BC");
      myDict.Add("C", "tu");
      myDict.Add("D", "FG");
      myDict.Add("d", "gh");
      myDict.Add("e", "fg");
      Console.WriteLine("Key/Value pairs...");
      foreach(DictionaryEntry de in myDict)
         Console.WriteLine("Key = "+de.Key + ", Value = " + de.Value);
   }
}

출력

실행 결과는 다음과 같습니다.

Key/Value pairs...
Key = A, Value = PQ
Key = B, Value = BC
Key = C, Value = tu
Key = D, Value = FG
Key = d, Value = gh
Key = e, Value = fg

출력 결과에서 볼 수 있듯이 "D"(Value = FG)와 "d"(Value = gh)가 각각 별개의 항목으로 저장되었습니다. 만약 대소문자를 구분하지 않는 사전이 필요하다면 new HybridDictionary(true)로 생성하면 됩니다. 이 경우 "D"와 "d"는 같은 키로 간주되며, 나중에 추가된 값이 기존 값을 덮어쓰게 된다는 점에 유의해야 합니다.