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

C# 열거형(Enum)에 정의된 전체 항목 개수 구하는 방법

열거형(enum)은 변경할 수 없는 상수(읽기 전용 변수)들의 그룹을 하나로 묶어 표현하는 특수한 "클래스"입니다.

열거형을 선언하려면 classinterface 대신 enum 키워드를 사용하며, 각 항목은 쉼표(,)로 구분합니다.

열거형의 기본 동작

기본적으로 열거형의 첫 번째 항목은 0, 두 번째 항목은 1의 값을 가지며, 이후 항목들도 순차적으로 1씩 증가합니다.

열거형 항목에서 정수 값을 얻으려면 해당 항목을 int 타입으로 명시적으로 형 변환해야 합니다.

필요하다면 각 항목에 원하는 값을 직접 할당할 수도 있습니다. 이 경우 다음 항목들은 지정된 값부터 순차적으로 증가합니다.

또한 열거형은 switch 문과 함께 자주 사용되며, 값에 따른 조건 분기를 깔끔하게 처리할 수 있습니다.

열거형의 총 항목 수 계산하기

열거형에 정의된 전체 항목의 개수를 구하려면 Enum.GetNames() 메서드로 모든 항목 이름을 배열로 가져온 뒤, Length 속성을 확인하면 됩니다. 같은 방식으로 Enum.GetValues()를 사용해도 동일한 결과를 얻을 수 있습니다.

예제 1: 항목 개수 출력

class Program{
    enum Level{
        Low,
        Medium,
        High
    }
    public static void Main(){
        var myCount = Enum.GetNames(typeof(Level)).Length;
        System.Console.WriteLine(myCount);
        Console.ReadLine();
    }
}

출력 결과

3

위 예제에서 Level 열거형에는 Low, Medium, High 세 개의 항목이 정의되어 있으므로 결과로 3이 출력됩니다.

예제 2: 항목 수만큼 반복문 실행

구한 항목 개수를 활용하면 열거형의 모든 항목을 순회하는 반복문을 손쉽게 작성할 수 있습니다.

class Program{
    enum Level{
        Low,
        Medium,
        High
    }
    public static void Main(){
        var myCount = Enum.GetNames(typeof(Level)).Length;
        for (int i = 0; i < myCount; i++){
            System.Console.WriteLine(i);
        }
        Console.ReadLine();
    }
}

출력 결과

0
1
2

이처럼 Enum.GetNames(typeof(열거형)).Length 구문 하나만으로 열거형에 정의된 총 항목 수를 간단히 계산할 수 있으며, 이를 활용해 동적인 반복 처리나 유효성 검사 등 다양한 로직을 구현할 수 있습니다.