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

C# SortedDictionary.Keys 속성 사용법과 예제 총정리

C#의 SortedDictionary.Keys 속성은 SortedDictionary<TKey, TValue>에 저장된 모든 키(key)를 담고 있는 컬렉션을 가져오는 데 사용됩니다. 이 속성을 활용하면 정렬된 사전 구조에서 키만 별도로 순회하거나 조회할 수 있습니다.

문법(Syntax)

Keys 속성의 기본 문법은 다음과 같습니다.

public System.Collections.Generic.SortedDictionary<TKey,TValue>.KeyCollection Keys { get; }

예제 1: 키 컬렉션 가져오기

다음 예제는 SortedDictionary에 요소를 추가하고, Keys 속성을 통해 전체 키를 출력하는 방법을 보여줍니다.

using System;
using System.Collections;
using System.Collections.Generic;
public class Demo {
   public static void Main(){
      SortedDictionary<int, string> sortedDict = new SortedDictionary<int, string>();
      sortedDict.Add(1, "SUV");
      sortedDict.Add(2, "MUV");
      sortedDict.Add(3, "Utility Vehicle");
      sortedDict.Add(4, "AUV");
      sortedDict.Add(5, "Hatchback");
      sortedDict.Add(6, "Convertible");
      Console.WriteLine("SortedDictionary key-value pairs...");
      IDictionaryEnumerator demoEnum = sortedDict.GetEnumerator();
      while (demoEnum.MoveNext())
         Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
      Console.WriteLine("Count of SortedDictionary key-value pairs = "+sortedDict.Count);
      sortedDict.Add(7, "Seven");
      sortedDict.Add(8, "Eight");
      Console.WriteLine("\nSortedDictionary key-value pairs...UPDATED");
      demoEnum = sortedDict.GetEnumerator();
      while (demoEnum.MoveNext())
         Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
      Console.WriteLine("Count of SortedDictionary key-value pairs (UPDATED) = "+sortedDict.Count);
      Console.WriteLine("Value in the SortedDictionary key-value pair key five = "+sortedDict[5]);
      sortedDict[5] = "Crossover";
      Console.WriteLine("Value in the SortedDictionary key-value pair key five (updated) = "+sortedDict[5]);
      SortedDictionary<int, string>.KeyCollection keyColl = sortedDict.Keys;
      Console.WriteLine("\nKeys...");
      foreach( int i in keyColl ){
         Console.WriteLine(i);
      }
   }
}

출력 결과

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

SortedDictionary key-value pairs...
Key = 1, Value = SUV
Key = 2, Value = MUV
Key = 3, Value = Utility Vehicle
Key = 4, Value = AUV
Key = 5, Value = Hatchback
Key = 6, Value = Convertible
Count of SortedDictionary key-value pairs = 6
SortedDictionary key-value pairs...UPDATED
Key = 1, Value = SUV
Key = 2, Value = MUV
Key = 3, Value = Utility Vehicle
Key = 4, Value = AUV
Key = 5, Value = Hatchback
Key = 6, Value = Convertible
Key = 7, Value = Seven
Key = 8, Value = Eight
Count of SortedDictionary key-value pairs (UPDATED) = 8
Value in the SortedDictionary key-value pair key five = Hatchback
Value in the SortedDictionary key-value pair key five (updated) = Crossover
Keys...
1
2
3
4
5
6
7
8

출력 결과에서 확인할 수 있듯이, Keys 속성은 SortedDictionary에 저장된 키들을 항상 정렬된 순서로 반환합니다. 이것이 일반 Dictionary와의 가장 큰 차이점입니다.

예제 2: ContainsKey와 함께 사용하기

이번에는 특정 키의 존재 여부를 확인하는 ContainsKey 메서드와 Keys 속성을 함께 활용한 예제입니다.

using System;
using System.Collections;
using System.Collections.Generic;
public class Demo {
   public static void Main(){
      SortedDictionary<int, string> sortedDict = new SortedDictionary<int, string>();
      sortedDict.Add(100, "Mobile");
      sortedDict.Add(200, "Laptop");
      sortedDict.Add(300, "Desktop");
      sortedDict.Add(400, "Speakers");
      sortedDict.Add(500, "Headphone");
      sortedDict.Add(600, "Earphone");
      Console.WriteLine("SortedDictionary key-value pairs...");
      IDictionaryEnumerator demoEnum = sortedDict.GetEnumerator();
      while (demoEnum.MoveNext())
         Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
      Console.WriteLine("\nThe SortedDictionary has the key 200? = "+sortedDict.ContainsKey(200));
      SortedDictionary<int, string>.KeyCollection keyColl = sortedDict.Keys;
      Console.WriteLine("\nKeys...");
      foreach( int i in keyColl ){
         Console.WriteLine(i);
      }
   }
}

출력 결과

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

SortedDictionary key-value pairs...
Key = 100, Value = Mobile
Key = 200, Value = Laptop
Key = 300, Value = Desktop
Key = 400, Value = Speakers
Key = 500, Value = Headphone
Key = 600, Value = Earphone
The SortedDictionary has the key 200? = True
Keys...
100
200
300
400
500
600

핵심 정리

  • Keys 속성은 SortedDictionary의 모든 키를 KeyCollection 타입으로 반환합니다.
  • 반환된 키 컬렉션은 키 값 기준으로 자동 정렬되어 있습니다.
  • foreach 문을 사용해 키 컬렉션을 간편하게 순회할 수 있습니다.
  • ContainsKey 메서드와 조합하면 키 존재 여부 확인 후 안전하게 데이터를 처리할 수 있습니다.