티스토리 뷰
목차
C# Enum을 string로 변환할 때 두 가지 방법을 이용할 수 있습니다.
하나는 단일 개체를 string 문자열로 변환하는 ToString() 응용 방법이고, 다른 하나는 Enum 전체를 배열로 받는 GetNames()를 응용하는 방법입니다.
이 두 가지 프로그래밍 방법 모두 다루니 참조해 주세요.
C# Enum.ToString(). Enum을 문자열로 변환하는 함수입니다. 변환된 string은 Enum의 이름을 표시하며, 해당 문자열은 변수 등에 저장해 유동적으로 사용할 수 있습니다.
예제. 예제를 위해서 C# enum 타입의 열거형을 하나 생성합니다. 반복문에서 인덱스를 증가하며 해당 문자열을 확인해 보겠습니다.
아래 프로그램에서 Priority.Critical의 인덱스는 4입니다.
1234567891011121314151617181920212223242526272829303132333435363738 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 결과
123456789101112 ::FOR::NoneTrivialNormalImportantCritical::GETVALUES::NoneTrivialNormalImportantCriticalcs
위의 프로그램. 위에서 Priority란 enum을 이용했습니다. 두 방법 모두 enum 요소를 첫 번째 값부터 순차적으로 호출했습니다. 5개의 C# enum 값을 출력했으며, GetNames() 함수 또한 ToString() 함수와 같은 문자열을 반환하는 프로그래밍입니다.
다른 형태. base.GetType(), GetValueField() 함수를 호출한 뒤 InternalGetValue()를 이용하면 다른 형태로도 문자열을 얻을 수 있습니다.
Warning - 이 방법은 성능에 영향을 줍니다. 그렇지만 코드 복잡도를 감소하며, string을 따로 저장할 필요가 없다는 장점이 있습니다.
123456789 public override string ToString(){Type type = base.GetType();object obj2 = ((RtFieldInfo)GetValueField(type)).InternalGetValue(this, false);return InternalFormat(type, obj2);}cs
Enum.GetNames()를 이용하면 C# Enum의 문자열 배열을 얻는 프로그래밍도 가능합니다.
위에 소개한 것처럼 루프 구조의 코드보단 GetNames를 사용하는 것이 바람직하나, 상황에 맞춰 유동적으로 구현하는 것이 가장 현명한 방법입니다.
혹시, 독학으로 C# 공부 중이라면 기초를 제대로 닦기 위해서라도 국비지원 학원 알아보는 걸 추천합니다.
내일배움카드 발급 자격 확인 및 신청 방법 가이드 - 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 사이트