C#/개발

C# enum 순회

푸코잇 2024. 1. 8. 09:50

C# enum 순회 방법

가끔 개발을 하다 보면 enum을 순회해야 하는 경우가 있다.

상수 값 또는 이름으로 순회하는 방법을 알아보자.

 

상수 값 순회하기

using System;

namespace CSStudy
{
    class Program
    {
        enum DayOfWeek
        {
            Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
        }

        static void Main(string[] args)
        {
            // var의 경우 object가 됨.
            // var 대신 int, enum 자료형(DayOfWeek)로 변경 가능
            foreach (var value in Enum.GetValues(typeof(DayOfWeek)))
            {
                Console.WriteLine($"{(int)value}\t{(DayOfWeek)value}");
            }
        }
    }
}

 

Enum.GetValues는 지정된 열거형에 대한 상수 값의 배열 Array를 반환한다.

이때 Array를 반환하므로 var의 경우 object로 컴파일된다.

var 대신 int, enum 자료형인 DayOfWeek로 변경 가능하다.

 

  • 출력 결과

Enum.GetValues

 

상수 이름 순회하기

using System;

namespace CSStudy
{
    class Program
    {
        enum DayOfWeek
        {
            Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
        }

        static void Main(string[] args)
        {
            foreach (string name in Enum.GetNames(typeof(DayOfWeek)))
            {
                Console.WriteLine(name);
            }
        }
    }
}

 

Enum.GetNames은 지정된 열거형에서 상수 이름의 배열 string[]을 반환한다.

foreach를 통해 상수 이름을 순회가능하다.

 

  • 출력 결과

Enum.GetNames