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

C# Enum.GetNames() 메서드 – 열거형 상수 이름을 배열로 가져오는 방법

C#의 Enum.GetNames() 메서드는 열거형(Enumeration)에 정의된 모든 상수의 이름을 문자열 배열(string[]) 형태로 반환합니다. 이 메서드를 활용하면 열거형에 포함된 값들을 반복문으로 손쉽게 순회할 수 있어, 드롭다운 목록 생성이나 로그 출력 등 다양한 상황에서 유용하게 사용됩니다.

열거형 선언 예시

먼저 재고 항목을 나타내는 간단한 열거형을 선언해 보겠습니다.

enum Stock { Watches, Books, Grocery };

이 열거형에는 시계(Watches), 도서(Books), 식료품(Grocery) 세 가지 상수가 정의되어 있습니다.

GetNames() 기본 사용법

상수 이름 배열을 가져오려면 Enum.GetNames()에 열거형의 타입을 전달하고, 반환된 배열을 foreach 문으로 순회하면 됩니다.

foreach(string s in Enum.GetNames(typeof(Stock))) {
    Console.WriteLine(s);
}

전체 예제 코드

이제 개별 상수 이름을 조회하는 Enum.GetName()과 전체 이름 배열을 반환하는 Enum.GetNames()를 함께 사용한 완성된 예제를 살펴보겠습니다.

using System;

class Demo {
    enum Stock { Watches, Books, Grocery };

    static void Main() {
        Console.WriteLine("첫 번째 재고 카테고리 = {0}", Enum.GetName(typeof(Stock), 0));
        Console.WriteLine("두 번째 재고 카테고리 = {0}", Enum.GetName(typeof(Stock), 1));
        Console.WriteLine("세 번째 재고 카테고리 = {0}", Enum.GetName(typeof(Stock), 2));

        Console.WriteLine("모든 재고 카테고리...");
        foreach(string s in Enum.GetNames(typeof(Stock))) {
            Console.WriteLine(s);
        }
   }
}

실행 결과

첫 번째 재고 카테고리 = Watches
두 번째 재고 카테고리 = Books
세 번째 재고 카테고리 = Grocery
모든 재고 카테고리...
Watches
Books
Grocery

핵심 정리 및 참고 사항

  • Enum.GetNames(Type): 열거형의 모든 상수 이름을 string[] 배열로 한꺼번에 반환합니다.
  • Enum.GetName(Type, int): 지정한 인덱스(정수 값)에 해당하는 상수 이름 하나만 반환합니다.
  • 배열 요소의 순서는 열거형에 상수가 선언된 순서를 따릅니다.
  • .NET 5 이상에서는 Enum.GetNames<Stock>()처럼 제네릭 버전을 사용할 수 있어 typeof 연산자 없이 더 간결하게 작성할 수 있습니다.

이처럼 GetNames() 메서드를 사용하면 열거형에 정의된 모든 상수를 코드 수정 없이 동적으로 처리할 수 있습니다.