Convertir Enum a String en C#
-
Convierta Enum a String con el atributo
Description
enC#
-
Convierta Enum a String con la instrucción
switch
enC#
Este tutorial discutirá los métodos para convertir una enumeración en una cadena en C#.
Convierta Enum a String con el atributo Description
en C#
No tenemos que usar nada para convertirlo en una cadena para un valor Enum simple que siga las convenciones de nomenclatura. Se puede mostrar al usuario con la función Console.WriteLine()
en C#. Se demuestra en el siguiente ejemplo de codificación.
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);
}
}
}
Producción :
Completed
En el código anterior, imprimimos directamente el valor de enumeración Completado
en formato de cadena en C#. Esto fue posible porque nuestro valor Enum siguió las convenciones de nomenclatura de variables en C#. Pero si queremos mostrar una cadena fácil de leer, tenemos que usar el atributo Description
de Enums en C#. El atributo Description
se utiliza para describir cada valor de una enumeración. Podemos convertir nuestra Enum en una cadena de fácil lectura escribiendo la cadena dentro del atributo Description
de la Enum. El siguiente ejemplo de código nos muestra cómo convertir un valor Enum en una cadena con el atributo Description
en 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);
}
}
}
Producción :
The Desired Task is Successfully Completed
En el código anterior, creamos un método de extensión, getDescription
, que devuelve la descripción del valor Enum en C#. Este método funciona perfectamente bien, pero es un poco complejo. Esta complejidad se simplifica en la siguiente sección.
Convierta Enum a String con la instrucción switch
en C#
Gran parte de la complejidad del método anterior se puede simplificar utilizando la declaración switch
en C#. Podemos asignar el valor deseado a nuestra variable de cadena para cada valor Enum con la declaración switch
en C#. Vea el siguiente ejemplo 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);
}
}
}
Producción :
The Desired Task is Successfully Completed
En el código anterior, creamos un método de extensión, getValue()
, que devuelve una cadena basada en el valor Enum usando la declaración switch
en C#. La función getValue()
usa la declaración switch
y devuelve una cadena diferente para cada valor de nuestro Enum especificado.
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.
LinkedInArtículo relacionado - Csharp Enum
- C# Convertir Cadena a enum
- Convertir Int en Enum en C#
- Enum Strings en C#
- Cómo enumerar un Enum en C#
- Cómo obtener el valor Int del Enum en C#