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 no banco de dados, ou seja, armazenaremos apenas valores inteiros
E após ler o valor enum do banco de dados, temos que convertê-lo de volta ao seu nome enum.
Existem duas maneiras 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 retorna 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 você estiver usando a versão C# .Net 6
, você 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 do tipo
Outra maneira é converter o valor enum para o membro da geração enumusando o método de fundição e depois usar o método ToString()
.
Esta é uma maneira simples que não utiliza nenhuma função C# Enum
incorporada.
Primeiro converta o valor enum para o membro da geração enume depois use 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
**/
Sumário
Neste tutorial aprendemos diferentes maneiras de obter o valor do nome enum em c#
- Passando enum tipo e parâmetros de valor para o método
Enum.GetName()
- E usando a fundição do tipo enum correspondente