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

C#에서 대소문자 구분 여부를 지정해 빈 HybridDictionary 만들기

C#의 HybridDictionarySystem.Collections.Specialized 네임스페이스에 속한 특수 컬렉션입니다. 저장되는 키-값 쌍이 적을 때는 ListDictionary처럼 가볍게 동작하다가, 항목이 일정 개수 이상 늘어나면 내부적으로 Hashtable로 전환되어 성능을 유지합니다.

빈 HybridDictionary를 생성하면서 대소문자 구분 여부까지 함께 지정하려면 생성자에 bool 값을 인자로 전달하면 됩니다. true를 넣으면 대소문자를 구분하고, false를 넣으면 대소문자를 구분하지 않습니다.

예제 1: 대소문자를 구분하지 않는 HybridDictionary

생성자에 false를 전달하면 대소문자를 구분하지 않는 빈 HybridDictionary가 만들어집니다.

using System;
using System.Collections;
using System.Collections.Specialized;

public class Demo {
   public static void Main() {
      HybridDictionary dict = new HybridDictionary(false);
      dict.Add("A", "AB");
      dict.Add("B", "BC");
      dict.Add("C", "DE");
      dict.Add("D", "de");

      Console.WriteLine("Key/Value pairs...");
      foreach(DictionaryEntry de in dict)
         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 = de

예제 2: 대소문자를 구분하는 HybridDictionary

이번에는 생성자에 true를 전달하여 대소문자를 구분하는 빈 HybridDictionary를 만든 뒤, 여러 키-값 쌍을 추가해 보겠습니다.

using System;
using System.Collections;
using System.Collections.Specialized;

public class Demo {
   public static void Main() {
      HybridDictionary dict = new HybridDictionary(true);
      dict.Add("A", "AB");
      dict.Add("B", "BC");
      dict.Add("C", "DE");
      dict.Add("D", "de");
      dict.Add("e", "FG");
      dict.Add("F", "gh");

      Console.WriteLine("Key/Value pairs...");
      foreach(DictionaryEntry de in dict)
         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 = de
Key = e, Value = FG
Key = F, Value = gh

정리

대소문자 구분 옵션은 키가 문자열일 때 특히 중요합니다. true로 설정한 사전에서는 "C"와 "c"가 서로 다른 키로 취급되어 둘 다 등록할 수 있지만, false로 설정하면 두 키가 동일한 것으로 간주됩니다. 따라서 이미 존재하는 키와 대소문자만 다른 키를 다시 추가하려 하면 ArgumentException이 발생할 수 있으니, 프로젝트의 요구 사항에 맞게 생성자의 bool 인자를 신중하게 선택하는 것이 좋습니다.