Portada » Preguntas Frecuentes de .NET 6 » ¿Cómo convertir un string a enum y enum a string?

¿Cómo convertir un string a enum y enum a string?

Existen varias razones para necesitar convertir un string a enum o un enum a string. Personalmente lo uso para 2 situaciones:

  1. Para introducir tipos auxiliares que luego me sirvan para mapear un JSON al objeto final.
  2. Para utilizar el valor textual del enum en vez de tener múltiples constantes en una clase.

Pero seguramente vosotros encontréis más utilidades.

Enum a string

/// Conversión enum a string
string enumStr = Enum.GetName<NombreEnum>(valorEnum);

/// Conversión alternativa de enum a string
string enumStr2 = valorEnum.ToString();

String a enum


/// Conversión de string a enum
enum strEnum = (NombreEnum)Enum.Parse(typeof(NombreEnum), valorString);

Ejemplos de uso

En este caso como el JSON nos viene como un valor de tipo string, lo podemos convertir a enums conocidos de nuestro dominio.

public enum TextColor { black, white, red }
public enum TextType { standard, bold, italic, underline }

public class StylePropsJSON
{
    public string TextColor { get; set; } = null;
    public string FontWeight { get; set; } = null;
}

public ParagraphStyle SetStyle(StylePropsJSON props) 
  => new ParagraphStyle(
        (TextColor)Enum.Parse(typeof(TextColor), props?.Style?.TextColor ?? "black"),
        (TextType)Enum.Parse(typeof(TextType), props?.Style?.FontWeight ?? "standard"));