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

C# HybridDictionary에서 값(Values) 컬렉션을 가져오는 방법

HybridDictionary는 컬렉션이 작을 때는 ListDictionary를 사용하고, 컬렉션이 커지면 Hashtable로 자동 전환되는 특수한 사전(Dictionary) 클래스입니다. 이 클래스에 저장된 값들을 ICollection 형태로 한 번에 가져오려면 Values 속성을 사용하면 됩니다.

HybridDictionary.Values 속성이란?

HybridDictionary.Values 속성은 사전에 저장된 모든 값을 담고 있는 ICollection을 반환합니다. 반환된 컬렉션은 CopyTo 메서드를 통해 배열로 복사하거나, foreach 문으로 순회할 수 있습니다.

예제 1: 문자열 값 복사하기

다음 예제에서는 HybridDictionary에 여러 개의 키-값 쌍을 추가한 후, Values.CopyTo() 메서드를 사용해 값을 문자열 배열로 복사하고 출력합니다.

using System;
using System.Collections.Specialized;

public class Demo {
   public static void Main() {
      HybridDictionary dict = new HybridDictionary();
      dict.Add("One", "Katie");
      dict.Add("Two", "Andy");
      dict.Add("Three", "Gary");
      dict.Add("Four", "Mark");
      dict.Add("Five", "Marie");
      dict.Add("Six", "Sam");
      dict.Add("Seven", "Harry");
      dict.Add("Eight", "Kevin");
      dict.Add("Nine", "Ryan");

      String[] strArr = new String[dict.Count];
      dict.Values.CopyTo(strArr, 0);

      for (int i = 0; i < dict.Count; i++)
         Console.WriteLine(strArr[i]);
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다. 참고로 HybridDictionary는 내부적으로 Hashtable을 사용하므로 값의 출력 순서는 입력 순서와 다를 수 있습니다.

Kevin
Harry
Mark
Gary
Katie
Marie
Sam
Andy
Ryan

예제 2: 간단한 키-값 쌍 처리하기

이번에는 더 간단한 예제를 살펴보겠습니다. 숫자 형태의 키와 알파벳 값을 저장한 뒤 같은 방식으로 값을 추출합니다.

using System;
using System.Collections.Specialized;

public class Demo {
   public static void Main() {
      HybridDictionary dict = new HybridDictionary();
      dict.Add("1", "A");
      dict.Add("2", "B");
      dict.Add("3", "C");
      dict.Add("4", "D");
      dict.Add("5", "E");
      dict.Add("6", "F");

      String[] strArr = new String[dict.Count];
      dict.Values.CopyTo(strArr, 0);

      for (int i = 0; i < dict.Count; i++)
         Console.WriteLine(strArr[i]);
   }
}

출력 결과

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

A
B
C
D
E
F

정리

HybridDictionary의 모든 값을 가져오려면 Values 속성을 사용하면 됩니다. 이 속성은 ICollection 타입을 반환하며, CopyTo 메서드로 배열에 복사하거나 foreach 루프로 직접 순회할 수 있습니다. 또한 Keys 속성을 사용하면 동일한 방식으로 모든 키를 가져올 수 있다는 점도 함께 기억해 두면 유용합니다.