0Pricing
C# Academy · 강의

열거형 값 순회

Enum.GetValues로 모든 멤버를 열거합니다.

열거형 값 순회은(는) CoddyKit의 무료 C# Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C# Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

열거형 멤버 나열

메뉴를 만들 때처럼 열거형의 모든 값이 필요한 경우가 있습니다. Enum.GetValues를 사용하면 모든 값을 가져올 수 있습니다.

using System;

enum Day { Mon, Tue, Wed }
class Program {
    static void Main() {
        foreach (Day d in Enum.GetValues<Day>())
            Console.WriteLine(d);
    }
}

제네릭 GetValues

제네릭 Enum.GetValues<T>()는 직접 반복할 수 있는 강력한 형식의 배열을 반환합니다.

using System;

enum Color { Red, Green, Blue }
class Program {
    static void Main() {
        Color[] all = Enum.GetValues<Color>();
        Console.WriteLine(all.Length);
    }
}

멤버 이름 가져오기

Enum.GetNames<T>()는 멤버 이름을 문자열로 반환합니다.

using System;

enum Color { Red, Green, Blue }
class Program {
    static void Main() {
        foreach (string name in Enum.GetNames<Color>())
            Console.WriteLine(name);
    }
}

이름과 값을 함께 사용하기

값을 반복하면서 int로 변환하면 이름과 내부 숫자를 모두 출력할 수 있습니다.

using System;

enum Color { Red = 1, Green = 2, Blue = 4 }
class Program {
    static void Main() {
        foreach (Color c in Enum.GetValues<Color>())
            Console.WriteLine(c + " = " + (int)c);
    }
}

멤버 개수 세기

값 배열의 길이를 확인하면 열거형에 멤버가 몇 개인지 알 수 있습니다.

using System;

enum Suit { Hearts, Diamonds, Clubs, Spades }
class Program {
    static void Main() {
        int count = Enum.GetValues<Suit>().Length;
        Console.WriteLine(count);
    }
}

메뉴 만들기

값을 반복하는 방식은 번호가 매겨진 선택 목록을 출력하는 데 매우 적합합니다.

using System;

enum Option { Start, Settings, Quit }
class Program {
    static void Main() {
        int i = 1;
        foreach (Option o in Enum.GetValues<Option>())
            Console.WriteLine(i++ + ") " + o);
    }
}

반복하면서 필터링하기

반복하는 동안 없음 표식과 같은 특정 멤버를 건너뛸 수 있습니다.

using System;

enum State { None, Active, Closed }
class Program {
    static void Main() {
        foreach (State s in Enum.GetValues<State>())
            if (s != State.None)
                Console.WriteLine(s);
    }
}

LINQ로 반복하기

Enum.GetValues와 LINQ를 결합하면 필터링하거나 변환할 수 있습니다.

using System;
using System.Linq;

enum Level { Low = 1, Medium = 2, High = 3 }
class Program {
    static void Main() {
        var highOnes = Enum.GetValues<Level>().Where(l => (int)l >= 2);
        foreach (var l in highOnes) Console.WriteLine(l);
    }
}

이전의 비제네릭 형식

제네릭이 도입되기 전에는 Enum.GetValues(typeof(T))를 사용했으며, 이 메서드는 형식이 지정되지 않은 배열을 반환합니다.

using System;

enum Color { Red, Green, Blue }
class Program {
    static void Main() {
        foreach (Color c in Enum.GetValues(typeof(Color)))
            Console.WriteLine(c);
    }
}

플래그와 반복

플래그 열거형을 반복하면 각 플래그가 개별적으로 나열됩니다. 조합을 편리하게 나타내는 멤버도 함께 표시되므로 필요하면 필터링해야 합니다.

using System;

[Flags]
enum Perm { Read = 1, Write = 2, Execute = 4 }
class Program {
    static void Main() {
        foreach (Perm p in Enum.GetValues<Perm>())
            Console.WriteLine(p + " = " + (int)p);
    }
}

열거형을 반복하는 이유

반복을 사용하면 사용자 인터페이스와 유효성 검사가 열거형과 동기화됩니다. 멤버를 추가하면 반복문에도 자동으로 포함됩니다.

using System;

enum Size { Small, Medium, Large }
class Program {
    static void Main() {
        foreach (Size s in Enum.GetValues<Size>())
            Console.WriteLine("Available: " + s);
    }
}

간단한 확인

열거형 반복에 대한 이해도를 확인해 보세요.

복습

Enum.GetValues<T>()는 모든 멤버를 형식이 지정된 배열로 반환하고, Enum.GetNames<T>()는 해당 멤버의 이름을 반환합니다. 반복문을 사용해 이름과 숫자 값을 함께 출력하고, 멤버 수를 세고, 메뉴를 만들거나 LINQ로 필터링할 수 있습니다.

열거형이 커져도 반복을 사용하면 메뉴와 유효성 검사가 자동으로 동기화됩니다.

자주 묻는 질문

“열거형 값 순회” 강의는 무료인가요?

네 — “열거형 값 순회” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C# Academy 강의 전체를 잠금 해제할 수 있습니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“열거형 값 순회”에서 뭘 배우나요?

Enum.GetValues로 모든 멤버를 열거합니다. 브라우저에서 직접 실행하는 실습 코드로 C# Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

C# Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 C# Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“열거형 값 순회” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 C# Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 C# Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 열거형 정의 및 사용
  2. Flags 열거형과 비트 조합
  3. 열거형 변환 및 구문 분석
  4. 열거형 값 순회
← C# Academy(으)로 돌아가기