C# 문자열을 열거 형으로 변환

  1. C#stringenum으로 변환-Enum.Parse()Enum.TryParse()사용
  2. Enum.Parse()메소드를 사용하여 예외 처리를 통해stringenum으로 변환하는 C# 프로그램
  3. Enum.TryParse()를 사용하여stringenum으로 변환하는 C# 프로그램
  4. Enum.IsDefined()메소드를 사용하여 문자열 값 존재를 확인하는 C# 프로그램
  5. 결론

C#에서는Enum.Parse()Enum.TryParse()메서드를 사용하여 문자열을 열거 형으로 변환합니다. 여기서는 두 가지 예를 모두 제시했지만 문자열을 열거 형으로 변환 할 때Enum.TryParse()메서드를 사용하는 것이 좋습니다.

C#stringenum으로 변환-Enum.Parse()Enum.TryParse()사용

문자열을enum으로 변환하기 위해Enum.Parse()메소드를 사용할 수 있습니다. Enum.Parse()는 정적 메소드이므로 파일 맨 위에System을 신중하게 포함시켜야합니다.

열거 형 유형, 문자열 값 및 표시기 (선택 사항)가이 메소드의 매개 변수입니다. Enum.Parse()Enum.TryParse()를 사용하는 올바른 구문은 다음과 같습니다.

EnumName VariableName= (EnumName)Enum.Parse(typeof(EnumName), StringValue);
EnumName VariableName= (EnumName)Enum.Parse(typeof(EnumName), StringValue,indicator); //indicator can be true or false
//To implement Enum.TryParse()
EnumName VariableName;
Enum.TryParse(StringValue, out VariableName);

이제 우리는 이것을 C# 프로그램에서 구현할 것입니다.

Enum.Parse()를 사용하여stringenum으로 변환하는 C# 프로그램

using System;
class Conversion{
      enum Flowers
      {
         None,
         Daisy= 1,
         Lili = 2,
         Rose = 3
      }
      static void Main()
      {
         string stringvalue = "Rose";
         Flowers Flower = (Flowers)Enum.Parse(typeof(Flowers), stringvalue);
          //To check if we have converted successfully
         if(Flower == Flowers.Rose)
         {
            Console.WriteLine("The Flower is Rose");
         }
      }
}

산출:

The Flower is Rose

여기에는 각각의 값을 가진 여러 상수를 포함하는Flowers라는 열거 형이 있습니다. 문자열 값Rose를 열거 형으로 변환하기 위해Enum.Parse()메소드를 호출했습니다. typeof(Flowers)는 열거 형을 반환합니다. 결국 전환이 성공했는지 확인했습니다.

변환하려는 문자열을 열거 형에서 사용할 수없는 경우 예외가 발생할 수 있습니다. 이를 피하기 위해 try-catch블록을 사용합니다.

Enum.Parse()메소드를 사용하여 예외 처리를 통해stringenum으로 변환하는 C# 프로그램

using System;

class Conversion{
      enum Flowers
      {
         None,
         Daisy= 1,
         Lili = 2,
         Rose = 3
      }
      static void Main()
      {
         stringvalue = "Jasmine";
         try
         {
         Flowers Flower = (Flowers)Enum.Parse(typeof(Flowers), stringvalue);
         }
         catch (Exception ex)
         {
         Console.WriteLine("Not Possible");
         //Set value to none
         Flower = Flowers.none;
         }
      }
}

산출:

Not Possible

Enum.TryParse()를 사용하여stringenum으로 변환하는 C# 프로그램

using System;
enum Flowers
      {
         None,
         Daisy= 1,
         Lili = 2,
         Rose = 3
      }
class Conversion
{
      static void Main()
      {
         string stringvalue = "Rose";
         //Using Enum.TryParse() 
         Flowers Flower;
         if(Enum.TryParse(stringvalue, out Flower))
         {
            Console.WriteLine(Flower == Flowers.Rose);
         }
      }
}

산출:

True

enum의 constant 값을Enum.TryParse()메소드의 매개 변수로 전달할 수도 있습니다. 다음 프로그램이이를 구현합니다.

using System;

enum Flowers
      {
         None,
         Daisy= 1,
         Lili = 2,
         Rose = 3
      }
class Conversion
{
      static void Main()
      {
         Flowers Flower;
         
         if(Enum.TryParse("3", out Flower))
         {
            Console.WriteLine(Flower);
         }
      }
}

산출:

Rose

변환하려는 문자열 값이 열거 형으로 정의되어 있는지 또는Enum.IsDefined()메서드를 사용하여 정의되지 않았는지 확인할 수도 있습니다.

Enum.IsDefined()메소드를 사용하여 문자열 값 존재를 확인하는 C# 프로그램

using System;

enum Flowers
      {
         None,
         Daisy= 1,
         Lili = 2,
         Rose = 3
      }
      
class Conversion{
      
      static void Main()
      {
         Console.WriteLine(Enum.IsDefined(typeof(Flowers), "Rose"));
      }
}

산출:

True

결론

Enum.Parse()Enum.TryParse()는 문자열을 열거 형으로 변환하는 데 사용되는 메서드입니다. 그러나Enum.TryParse()를 사용하는 것이 가장 좋습니다.

관련 문장 - Csharp String

  • C#에서 여러 줄 문자열 리터럴을 작성하는 방법
  • C# 문자열을 날짜 / 시간으로 변환
  • 관련 문장 - Csharp Enum

  • C#에서 여러 줄 문자열 리터럴을 작성하는 방법
  • C# 바이트 배열을 문자열로 변환