티스토리 뷰

목차

    반응형

    C# Enum을 string로 변환할 때 두 가지 방법을 이용할 수 있습니다.

    하나는 단일 개체를 string 문자열로 변환하는 ToString() 응용 방법이고, 다른 하나는 Enum 전체를 배열로 받는 GetNames()를 응용하는 방법입니다.

     

    이 두 가지 프로그래밍 방법 모두 다루니 참조해 주세요.

     

    C# Enum string 변환 2가지 방법. ToString, GetNames
    [C# 프로그래밍 예제 - Enum to String]

     

    C# Enum.ToString(). Enum을 문자열로 변환하는 함수입니다. 변환된 string은 Enum의 이름을 표시하며, 해당 문자열은 변수 등에 저장해 유동적으로 사용할 수 있습니다.

     

    예제. 예제를 위해서 C# enum 타입의 열거형을 하나 생성합니다. 반복문에서 인덱스를 증가하며 해당 문자열을 확인해 보겠습니다.

     

    아래 프로그램에서 Priority.Critical의 인덱스는 4입니다. 

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    using System;
     
    enum Priority
    {
        None,
        Trivial,
        Normal,
        Important,
        Critical
    }
     
    class Program
    {
        static void Main()
        {
            // Write string representation for Important.
            Priority priorityValue = Priority.Important;
            string enumValue = priorityValue.ToString();
     
            // Loop through enumerations.
            // ... Write string representations.
            Console.WriteLine("::FOR::");
            for (Priority p = Priority.None;
                p <= Priority.Critical;
                p++)
            {
                string value = p.ToString();
                Console.WriteLine(value);
            }
     
            Console.WriteLine("::GETVALUES::");
            foreach (Priority p in Enum.GetValues(typeof(Priority)))
            {
                string value = p.ToString();
                Console.WriteLine(value);
            }
        }
    }
    cs

     

    C# Enum -> string 결과

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ::FOR::
    None
    Trivial
    Normal
    Important
    Critical
    ::GETVALUES::
    None
    Trivial
    Normal
    Important
    Critical
    cs
     

    위의 프로그램. 위에서 Priority란 enum을 이용했습니다. 두 방법 모두 enum 요소를 첫 번째 값부터 순차적으로 호출했습니다. 5개의 C# enum 값을 출력했으며, GetNames() 함수 또한 ToString() 함수와 같은 문자열을 반환하는 프로그래밍입니다.

     

    다른 형태. base.GetType(), GetValueField() 함수를 호출한 뒤 InternalGetValue()를 이용하면 다른 형태로도 문자열을 얻을 수 있습니다.

     

    Warning - 이 방법은 성능에 영향을 줍니다. 그렇지만 코드 복잡도를 감소하며, string을 따로 저장할 필요가 없다는 장점이 있습니다.

     

    c# ToString GetNames
    [C# 열거형 문자열로 변환]

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    public override string ToString()
    {
        Type type = base.GetType();
     
        object obj2 = ((RtFieldInfo)GetValueField(type))
            .InternalGetValue(thisfalse);
     
        return InternalFormat(type, obj2);
    }
    cs

     

    Enum.GetNames()를 이용하면 C# Enum의 문자열 배열을 얻는 프로그래밍도 가능합니다.

     

    위에 소개한 것처럼 루프 구조의 코드보단 GetNames를 사용하는 것이 바람직하나, 상황에 맞춰 유동적으로 구현하는 것이 가장 현명한 방법입니다.

     

    혹시, 독학으로 C# 공부 중이라면 기초를 제대로 닦기 위해서라도 국비지원 학원 알아보는 걸 추천합니다.

     

    [최대 500만원. 국비지원 학원 알아보기]

     

    내일배움카드 발급 자격 확인 및 신청 방법 가이드 - 1mm

    내일배움카드 발급 자격과 신청방법에 대해 A to Z 상세하게 가이드로 알려드립니다.

    kako.co.kr

     

    관련 글

    C# 비트연산 - 플래그 응용 (bit flag enum 연산자 예제)

    C# string <-> 숫자 변환 방법 3가지 (TryParse, Convert, ToInt)

    C# string 예제 Compare, Contains, Substring, Join 4가지

    C# URI Anchor 예약어 # 및 Url Encode 사이트

    C# Dictionary Value 값 가져오기 (TryGetValue, out 예제)

    C++ string Split 함수, 문자열 자르기 또는 나누기

    반응형