Como obter enum nome do valor em C#
Um dos casos de uso popular de enum é obter o nome enum a partir do seu valor.
Considere um exemplo do mundo real, geralmente armazenaremos valores enum na base de dados. ou seja, armazenaremos apenas valores inteiros
E depois de ler o valor enum da base de dados, temos de o converter de volta para o seu nome enum.
Existem duas formas de obter enum nome do valor em C#*
On this page
Solução 1: Usando Enum.GetName()
A função C# Enum.GetName()
toma dois parâmetros enum tipo e valor e devolve o nome enum.
Veja um exemplo de LogLevel
Enum
public enum LogLevel
{
ERROR=1,
WARN=2,
INFO=3,
DEBUG=4
}
Agora vamos passar o valor enum para o Enum.GetName()
para obter o nome 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
**/
Se estiver a utilizar a versão C# .Net 6
, pode passar apenas enum value(cast to enum) para o método Enum.GetName()
.
/** get enum name from value in .Net 6**/
var enumName6 = Enum.GetName((LogLevel)enumValue);
Solução 2: Usando fundição de tipo
Outra forma é, Converter enum valor para o membro da geração enumusando fundição e depois usar o método ToString()
.
Esta é uma forma simples que não utiliza quaisquer funções incorporadas C# Enum
.
Primeiro converter enum para o valor enumeração membro e depois utilizar o 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
**/
Resumo
Neste tutorial aprendemos diferentes formas de obter o valor do nome enum em c#
- Passando enum tipo e parâmetros de valor para o método
Enum.GetName()
- E utilizando o tipo de fundição correspondente ao tipo enum