C# Enum foreach : 모든 Enum 값 순환하는 방법

C# Enum foreach : 이 코드 예제에서는 C#에서 모든 Enum 값 순환하는 방법을 보여줍니다.

먼저 시작하기 위해, Visual Studio C# 콘솔 앱을 만듭니다.

우리는 두 개의 Enum 유형을 선언하겠습니다. 이 예제를 위해 두 가지 Enum, Colors와 Fruits를 사용합니다. Colors Enum에는 다섯 개의 요소가 있으며, Fruits Enum에는 네 개의 요소가 있습니다.

enum Colors { Red, Orange, Green, Blue, Black};
enum Fruits { Apple = 1, Banana = 2, Orange = 3, Peer = 4 };

Enum의 모든 값 가져오기

Enum의 모든 값을 가져오려면 Enum.GetValues 정적 메서드를 사용할 수 있습니다. Enum.GetValues 메서드는 모든 Enum 값을 포함하는 배열을 반환합니다. 다음 코드 스니펫은 Enum의 모든 값을 순환하고 콘솔에 출력합니다.

foreach (int i in Enum.GetValues(typeof(Colors)))
{
    Console.WriteLine($" {i}" );
}

출력:

 0
 1
 2
 3
 4

Enum의 이름 가져오기

Enum.GetName 메서드는 지정된 값과 Enum에서 상수의 이름을 반환합니다. GetName 메서드는 두 개의 인수를 사용합니다: Enum의 유형 및 인덱스입니다.

foreach (int i in Enum.GetValues(typeof(Colors)))
{
    Console.WriteLine($"{Enum.GetName(typeof(Colors), i)}");
}

출력:

Red
Orange
Green
Blue
Black

Enum의 이름 목록 가져오기

Enum.GetNames 정적 메서드는 지정된 Enum의 모든 멤버 이름을 포함하는 배열을 반환합니다. 다음 코드 스니펫은 Enum을 순환하고 모든 멤버 이름을 출력합니다.

foreach (string name in Enum.GetNames(typeof(Fruits)))
{
    Console.WriteLine(name);
}

출력:

Apple
Banana
Orange
Peer

ConsoleColor Enum 사용 예제

다른 예제로 .NET Enum인 ConsoleColor을 사용하는 방법을 살펴봅시다. 다음 코드 스니펫은 ConsoleColor Enum 값을 가져와 Console의 전경색으로 설정합니다.

foreach (ConsoleColor color in Enum.GetValues(typeof(ConsoleColor)))
{
    Console.ForegroundColor = color;
    Console.WriteLine($"전경색이 {color}로 설정되었습니다");
}

출력은 다음과 같습니다.

C# Enum foreach : 모든 Enum 값 순환하는 방법

이제 위의 코드를 다룬 전체 C# Enum 코드 예제를 보여드립니다.

using System;

public class GetEnumValuesSample
{
    enum Colors
    {
        Red,
        Orange,
        Green,
        Blue,
        Black
    };
    enum Fruits
    {
        Apple = 1, Banana = 2, Orange = 3, Peer = 4
    };
    public static void Main()
    {
        Console.WriteLine("Colors Enum의 값은:");
        foreach (int i in Enum.GetValues(typeof(Colors)))
        {
            Console.Write($"{Enum.GetName(typeof(Colors), i)}");
            Console.WriteLine($" {i}");
        }
        Console.WriteLine();
        // Fruits의 이름 가져오기
        foreach (string name in Enum.GetNames(typeof(Fruits)))
        {
            Console.WriteLine(name);
        }
        // 모든 Console 색을 순환하고 전경색으로 설정
        foreach (ConsoleColor color in Enum.GetValues(typeof(ConsoleColor)))
        {
            Console.ForegroundColor = color;
            Console.WriteLine($"전경색이 {color}로 설정되었습니다");
        }
        Console.ReadKey();
    }
}

출력:

C# Enum foreach : 모든 Enum 값 순환하는 방법

Enums와 foreach 활용

이제, foreach를 enums와 함께 사용하는 다양한 방법을 탐구할 때입니다. 이러한 기능은 다양한 시나리오에서 유용하게 활용됩니다.

예제 1: 열거자를 활용한 데이터 처리

여기에서는 foreach를 사용하여 enums의 각 열거자를 처리하고, 데이터를 필터링하거나 특정 작업을 수행하는 방법에 대해 알아봅니다.

foreach (var color in Colors )
{
    if (color == Colors.Red|| color == Colors.Green|| color == Colors.Blue)
    {
        Console.WriteLine($"{color }은 빛의 삼원색중 하나 입니다.");
    }
    else
    {
        Console.WriteLine($"{color }은 색상입니다.");
    }
}

예제 2: Switch 문과 함께 활용

switch 문과 foreach를 함께 사용하는 방법에 대해 살펴봅니다. 이것은 특히 열거자와 관련된 다양한 조건에 따라 다른 작업을 실행할 때 유용합니다.

foreach (var fruit in Fruits )
{
    switch (fruit)
    {
        case Fruit.Apple:
            Console.WriteLine("사과를 찾았습니다.");
            break;
        case Fruit.Banana:
            Console.WriteLine("바나나를 찾았습니다.");
            break;
        case Fruit.Orange:
            Console.WriteLine("오렌지를 찾았습니다.");
            break;
        default:
            Console.WriteLine("기타 과일을 찾았습니다.");
            break;
    }
}

결론

이 글에서는 C# enums와 foreach 루프를 사용하여 열거자를 효과적으로 처리하는 방법을 살펴보았습니다. 이러한 기술은 다양한 프로그래밍 시나리오에서 유용하며, 코드의 가독성과 유지 관리성을 향상시킬 수 있습니다. C# 개발에서 enums와 foreach를 활용하여 효과적으로 작업할 수 있을 것입니다.

Leave a Comment