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

C#에서 HybridDictionary가 고정 크기인지 확인하는 방법

C#에서 HybridDictionary가 고정된 크기(fixed size)를 갖는지 확인하려면 IsFixedSize 속성을 사용하면 됩니다. 이 속성은 컬렉션의 크기가 고정되어 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

참고로 HybridDictionary는 요소 수가 적을 때는 ListDictionary처럼 동작하고, 컬렉션이 커지면 Hashtable로 자동 전환되는 컬렉션 클래스입니다. 일반적인 방법으로 생성한 HybridDictionary는 요소를 자유롭게 추가하거나 삭제할 수 있으므로 IsFixedSize 속성은 항상 false를 반환합니다.

예제 1

다음은 두 개의 HybridDictionary를 만들고 고정 크기 여부를 확인하는 코드입니다 −

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

public class Demo {
   public static void Main() {
      HybridDictionary dict1 = new HybridDictionary();
      dict1.Add("A", "Books");
      dict1.Add("B", "Electronics");
      dict1.Add("C", "Smart Wearables");
      dict1.Add("D", "Pet Supplies");
      dict1.Add("E", "Clothing");
      dict1.Add("F", "Footwear");
      Console.WriteLine("HybridDictionary1 elements...");
      foreach(DictionaryEntry d in dict1) {
         Console.WriteLine(d.Key + " " + d.Value);
      }
      Console.WriteLine("Is the HybridDictionary1 having fixed size? = "+dict1.IsFixedSize);
      Console.WriteLine("If HybridDictionary1 read-only? = "+dict1.IsReadOnly);
      Console.WriteLine("Is HybridDictionary1 synchronized = "+dict1.IsSynchronized);

      HybridDictionary dict2 = new HybridDictionary();
      dict2.Add("1", "One");
      dict2.Add("2", "Two");
      dict2.Add("3", "Three");
      dict2.Add("4", "Four");
      dict2.Add("5", "Five");
      dict2.Add("6", "Six");
      Console.WriteLine("\nHybridDictionary2 elements...");
      foreach(DictionaryEntry d in dict2) {
         Console.WriteLine(d.Key + " " + d.Value);
      }
      Console.WriteLine("Is HybridDictionary1 equal to HybridDictionary2? = "+(dict1.Equals(dict2)));
      Console.WriteLine("Is the HybridDictionary2 having fixed size? = "+dict2.IsFixedSize);
      Console.WriteLine("If HybridDictionary2 read-only? = "+dict2.IsReadOnly);
      Console.WriteLine("Is HybridDictionary2 synchronized = "+dict2.IsSynchronized);
   }
}

출력

위 코드를 실행하면 다음과 같은 결과가 출력됩니다 −

HybridDictionary1 elements...
A Books
B Electronics
C Smart Wearables
D Pet Supplies
E Clothing
F Footwear
Is the HybridDictionary1 having fixed size? = False
If HybridDictionary1 read-only? = False
Is HybridDictionary1 synchronized = False
HybridDictionary2 elements...
1 One
2 Two
3 Three
4 Four
5 Five
6 Six
Is HybridDictionary1 equal to HybridDictionary2? = False
Is the HybridDictionary2 having fixed size? = False
If HybridDictionary2 read-only? = False
Is HybridDictionary2 synchronized = False

결과 분석

두 HybridDictionary 모두 IsFixedSize, IsReadOnly, IsSynchronized 속성이 false로 출력됩니다. 즉, 일반적인 방법으로 생성한 HybridDictionary는 크기가 고정되어 있지 않고, 읽기 전용이 아니며, 스레드 동기화도 지원하지 않습니다. 또한 서로 다른 키와 값을 가진 두 컬렉션을 Equals() 메서드로 비교하면 false가 반환됩니다.

예제 2

이번에는 부서 정보를 담은 HybridDictionary로 다시 한번 확인해 보겠습니다 −

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

public class Demo {
   public static void Main() {
      HybridDictionary dict = new HybridDictionary();
      dict.Add("1", "Finance");
      dict.Add("2", "Marketing");
      dict.Add("3", "IT");
      dict.Add("4", "Operations");
      dict.Add("5", "Purchase");
      Console.WriteLine("HybridDictionary elements...");
      foreach(DictionaryEntry d in dict) {
         Console.WriteLine(d.Key + " " + d.Value);
      }
      Console.WriteLine("Is the HybridDictionary having fixed size? = "+dict.IsFixedSize);
      Console.WriteLine("If HybridDictionary read-only? = "+dict.IsReadOnly);
      Console.WriteLine("Is HybridDictionary synchronized = "+dict.IsSynchronized);
   }
}

출력

위 코드를 실행하면 다음과 같은 결과가 출력됩니다 −

HybridDictionary elements...
1 Finance
2 Marketing
3 IT
4 Operations
5 Purchase
Is the HybridDictionary having fixed size? = False
If HybridDictionary read-only? = False
Is HybridDictionary synchronized = False