Converter Enum em String em C#

  1. Converter Enum em String com o atributo Description em C#
  2. Converta Enum em String com a instrução switch em C#
Converter Enum em String em C#

Este tutorial discutirá os métodos para converter um enum em uma string em C#.

Converter Enum em String com o atributo Description em C#

Não precisamos usar nada para convertê-lo em uma string para um valor Enum simples que segue as convenções de nomenclatura. Ele pode ser exibido para o usuário com a função Console.WriteLine() em C#. Isso é demonstrado no exemplo de codificação abaixo.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace enum_to_string
{
    public enum Status
    {
        InProgress,
        Completed
    }
    class Program
    {
        static void Main(string[] args)
        {
            Status complete = Status.Completed;
            Console.WriteLine(complete);
        }
    }
}

Resultado:

Completed

No código acima, imprimimos diretamente o valor Enum Completed em formato de string em C#. Isso foi possível porque nosso valor Enum seguia as convenções de nomenclatura de variáveis ​​em C#. Mas se quisermos exibir uma string de fácil leitura, temos que usar o atributo Description de Enums em C#. O atributo Description é usado para descrever cada valor de um Enum. Podemos converter nosso Enum em uma string de fácil leitura, escrevendo a string dentro do atributo Description do Enum. O exemplo de código a seguir nos mostra como converter um valor Enum em uma string com o atributo Description em C#.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Reflection;

namespace enum_to_string
{
    public enum Status
    {
        [Description("The Desired Task is InProgress")]
        InProgress,
        [Description("The Desired Task is Successfully Completed")]
        Completed
    }
    static class extensionClass
    {
        public static string getDescription(this Enum e)
        {
            Type eType = e.GetType();
            string eName = Enum.GetName(eType, e);
            if (eName != null)
            {
                FieldInfo fieldInfo = eType.GetField(eName);
                if (fieldInfo != null)
                {
                    DescriptionAttribute descriptionAttribute =
                           Attribute.GetCustomAttribute(fieldInfo,
                             typeof(DescriptionAttribute)) as DescriptionAttribute;
                    if (descriptionAttribute != null)
                    {
                        return descriptionAttribute.Description;
                    }
                }
            }
            return null;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Status complete = Status.Completed;
            string description = complete.getDescription();
            Console.WriteLine(description);
        }
    }
}

Resultado:

The Desired Task is Successfully Completed

No código acima, criamos um método de extensão, getDescription, que retorna a descrição do valor Enum em C#. Este método funciona perfeitamente bem, mas é um pouco complexo. Essa complexidade é simplificada na próxima seção.

Converta Enum em String com a instrução switch em C#

Muita complexidade do método anterior pode ser simplificada usando a instrução switch em C#. Podemos atribuir o valor desejado à nossa variável de string para cada valor Enum com a instrução switch em C#. Veja o seguinte exemplo de código.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Reflection;

namespace enum_to_string
{
    public enum Status
    {
        InProgress,
        Completed
    }
    static class extensionClass
    {
        public static string getValue(this Status e)
        {
            switch (e)
            {
                case Status.InProgress:
                    return "The Desired Task is InProgress";
                case Status.Completed:
                    return "The Desired Task is Successfully Completed";
            }
            return String.Empty;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Status complete = Status.Completed;
            string value = complete.getValue();
            Console.WriteLine(value);
        }
    }
}

Resultado:

The Desired Task is Successfully Completed

No código acima, criamos um método de extensão, getValue(), que retorna uma string com base no valor Enum usando a instrução switch em C#. A função getValue() usa a instrução switch e retorna uma string diferente para cada valor de nosso Enum especificado.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Artigo relacionado - Csharp Enum

  • C# Converter String em Enum
  • Converter Int em Enum em C#
  • Strings Enum em C#
  • Como Enumerar um Enum em C#
  • Como Obter Valor Intensivo do Enum em C#
  • Artigo relacionado - Csharp String

  • C# Converter Int a String
  • C# Converter String em Enum
  • Use Strings na instrução Switch em C#
  • C# Converter String para Data
  • Como converter uma string em Booleano em C#
  • Como converter uma string em uma array de bytes em C#