Cómo obtener el nombre enum del valor en C#
Uno de los casos de uso más populares de enum es obtener el nombre de enum a partir de su valor.
Consideremos un ejemplo del mundo real, generalmente almacenaremos valores de enum en la base de datos, es decir, almacenaremos sólo valores enteros
Y después de leer el valor enum de la base de datos tenemos que convertirlo de nuevo a su nombre enum.
Hay dos formas de obtener el nombre enum a partir del valor en C#
On this page
Solución 1: Usando Enum.GetName()
C# Enum.GetName()
la función toma dos parámetros enum tipo y valor y devuelve el nombre enum.
Tomemos un ejemplo de LogLevel
Enum
public enum LogLevel
{
ERROR=1,
WARN=2,
INFO=3,
DEBUG=4
}
Ahora pasaremos el valor de enum a Enum.GetName()
para obtener el nombre de enum
var enumValue = 1;
var enumName = Enum.GetName(typeof(LogLevel),enumValue);
Console.WriteLine($"The name of enum value: {enumValue} is {enumName}");
/**
Here is the output:
The name of enum value : 1 is ERROR
**/
Si estás usando la versión de C# .Net 6
, puedes pasar sólo el valor de enum (cast to enum) al método Enum.GetName()
.
/** get enum name from value in .Net 6**/
var enumName6 = Enum.GetName((LogLevel)enumValue);
Solución 2: Usar el casting de tipos
Otra forma es, convertir el valor de enum al miembro de la eración enumusando el casting y luego usar el método ToString()
.
Esta es una forma sencilla que no utiliza ninguna función incorporada en C# Enum
.
Primero convierta el valor de enum en el miembro enumy luego use el método ToString()
.
var enumValue = 2;
//Convert enum Value
var enumDisplayValue = (LogLevel)enumValue;
var enumName = enumDisplayValue.ToString();
Console.WriteLine($"The name of enum value: {enumValue} is {enumName}");
/**
Here is the output
The name of enum value : 2 is WARN
**/
Resumen
En este tutorial hemos aprendido diferentes formas de obtener el valor del nombre de enum en c#
- Pasando los parámetros de tipo y valor de enum al método
Enum.GetName()
- Y utilizando el casting de tipo a la correspondiente enum tipo