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

C#에서 Enum.Parse()로 열거형 문자열을 파싱하는 방법

C# 열거형(Enum) 구문 분석 개요

C#에서 Enum.Parse() 메서드는 열거형 상수의 이름 또는 숫자 값을 나타내는 문자열을 이에 대응하는 열거형 객체로 변환해 주는 기능입니다. 예를 들어 사용자 입력으로 받은 문자열 "Car"를 실제 열거형 값으로 바꿔야 할 때 유용하게 사용됩니다.

열거형 선언하기

먼저 다음과 같이 차량 종류를 나타내는 열거형을 선언합니다.

enum Vehicle { Car, Bus, Truck, Motobike };

Enum.Parse()와 GetNames() 활용하기

열거형에 정의된 모든 이름을 가져오려면 Enum.GetNames() 메서드를 반복문과 함께 사용하면 됩니다. 그런 다음 각 이름을 Enum.Parse() 메서드로 파싱하여 해당하는 열거형 값을 얻을 수 있습니다.

Enum.Parse(typeof(Vehicle), v)

여기서 첫 번째 인자는 대상 열거형의 타입(typeof(Vehicle)), 두 번째 인자는 변환할 문자열입니다.

전체 예제 코드

using System;

public class Demo {
    enum Vehicle { Car, Bus, Truck, Motobike };

    public static void Main() {
        Console.WriteLine("열거형 목록...");
        foreach (string v in Enum.GetNames(typeof(Vehicle))) {
            Console.WriteLine("{0} = {1:D}", v, Enum.Parse(typeof(Vehicle), v));
        }
        Console.WriteLine();
    }
}

실행 결과

열거형 목록...
Car = 0
Bus = 1
Truck = 2
Motobike = 3

참고 사항

파싱하려는 문자열이 열거형에 존재하지 않는 경우 Enum.Parse()는 ArgumentException 예외를 발생시킵니다. 따라서 유효성이 보장되지 않은 입력을 처리할 때는 예외를 던지지 않고 bool 값을 반환하는 Enum.TryParse() 메서드를 사용하는 것이 더 안전합니다.