C#에서 열거 형을 열거하는 방법

  1. enum을 열거 할Enum.GetNames()메서드
  2. C#에서enum을 열거하는Enum.GetValues()​​메서드
  3. 더 많은 예
  4. 비고:

이 자습서에서는 C#에서enum 유형을 열거하는 방법을 소개하고 일부 코드 예제 목록을 통해이를 보여줍니다.

이전 튜토리얼에서는 C#을 사용하여enum에서int 값을 검색하는 방법을 배웠습니다. 지난 자습서에서 언급했듯이Enumeration또는enum은 기본 정수 유형의 명명 된 상수 집합을 정의하는 사용자 정의 값 유형입니다.

enum의 일반적인 구문은 다음과 같습니다.

enum <enum_name> {
   enumeration_list
};

enum_name은 열거 유형의 이름을 지정하고enumeration_list는 쉼표로 구분 된 식별자 목록을 지정합니다.

다음으로 C#의 모든enum 값을 반복하거나 열거하는 방법을 살펴 보겠습니다. ‘열거 형’을 열거하는 방법에는 여러 가지가 있습니다. 다음 예는 이러한 방법을 보여줍니다.

enum을 열거 할Enum.GetNames()메서드

목표는Enum.GetName()메소드를 사용하여열거 목록에있는 상수 이름 배열을 가져 오는 것입니다. foreach루프를 사용하여 이름 배열을 인쇄합니다.

using System;

public class Example1
{
    public enum Fruits
    {
        Apple,
        Banana,
        Orange,
        Watermelon,
        Mango,
        Strawberry
    }
  
    public static void Main()
    {
        foreach (string fruit in  Enum.GetNames(typeof(Fruits)))
        {
            Console.WriteLine(fruit);
        }
    }
}

출력:

Apple
Banana
Orange
Watermelon
Mango
Strawberry

C#에서enum을 열거하는Enum.GetValues()​​메서드

또 다른 접근 방식은열거 목록에서 상수 값의 배열을 검색하는Enum.GetValues​​()메서드를 사용하는 것입니다. 또한 foreach루프를 사용하여 각 값을 인쇄합니다.

using System;

public class Example2
{
    public enum Subjects
    {
        Maths,
        Biology,
        English,
        Chemistry,
        Physics,
        History
    }
    
    public static void Main()
    {
        foreach (Subjects sub in Enum.GetValues(typeof(Subjects)))
        {
            Console.WriteLine(sub);
        }      
    }
}

출력:

Maths
Biology
English
Chemistry
Physics
History

Enum.GetValues()메서드 사용에 대한 전체 그림을 얻기 위해 몇 가지 예제를 더 논의 해 보겠습니다.

더 많은 예

예 1:

using System;

public class Demo1
{
    enum Colors { White, Black, Red, Green, Blue };
    enum Planets { Earth = 0, Jupiter = 10, Saturn = 20, Mars = 30, Venus = 40 };
    
  public static void Main() {
    
      Console.WriteLine("The list of Colors Enum are:");
      foreach(int i in Enum.GetValues(typeof(Colors)))
          Console.WriteLine(i);
  
      Console.WriteLine();
  
      Console.WriteLine("The list of Planets Enum are:");
      foreach(int i in Enum.GetValues(typeof(Planets)))
          Console.WriteLine(i);
  }
}

출력:

The list of Colors Enum are:
0
1
2
3
4

The list of Planets Enum are:
0
10
20
30
40 

위 예의 첫 번째 부분에서 배열 요소는열거상수의 이진 값 (즉, 부호없는 값)으로 정렬됩니다.

예 2:

using System;

enum SignValue { NegativeVal = -1, ZeroVal = 0, PositiveVal = 1 };

public class MainValue
{
    public static void Main()
    {
      foreach (var val in Enum.GetValues(typeof(SignValue))) {
         Console.WriteLine("{0,3} 0X{0:X8} {1}", (int)val, ((SignValue)val));
      }
    }
}

출력:

0 ZeroVal 0X00000000
1 PositiveVal 0X00000001
-1 NegativeVal 0XFFFFFFFF

위의 예는 0, 음수, 양수 값을 포함하는열거 목록에 대해Enum.GetValues()메소드가 반환 한 배열에 대한 정보를 보여줍니다.

비고:

Enum.GetValues()메서드는enum의 각 요소에 대한 값을 포함하는 배열을 반환합니다. 여러 요소의 값이 동일한 경우 생성 된 배열에 중복 값이 ​​포함됩니다. 이 경우 반환 된 배열의 각 값으로Enum.GetNames()메서드를 호출해도 중복 값을 가진 요소에 할당 된 고유 이름이 복원되지 않습니다. 모든 열거 형 멤버의 이름을 성공적으로 검색하려면Enum.GetNames()메서드를 호출하는 것이 좋습니다.

관련 문장 - Csharp Enum

  • C#의 Enum에서 Int 값을 얻는 방법