Jak získat název enum z hodnoty v jazyce C#
Jedním z oblíbených případů použití enum je získání enum jména z jeho hodnoty.
Uvažujme reálný příklad, obecně budeme v databázi ukládat hodnoty enum. Tj. budeme ukládat pouze celočíselné hodnoty
A po načtení hodnoty enum z databáze ji musíme převést zpět na její název enum.
Existují dva způsoby, jak v jazyce C# získat z hodnoty enum název
On this page
Řešení 1: Pomocí Enum.GetName()
C# Enum.GetName()
funkce přijímá dva parametry enum typ a hodnotu a vrací název enum.
Vezměme si příklad LogLevel
Enum
public enum LogLevel
{
ERROR=1,
WARN=2,
INFO=3,
DEBUG=4
}
Nyní předáme hodnotu enum enmu Enum.GetName()
, abychom získali název 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
**/
Pokud používáte verzi .Net 6
v jazyce C#, můžete metodě Enum.GetName()
předat pouze hodnotu enum (cast na enum).
/** get enum name from value in .Net 6**/
var enumName6 = Enum.GetName((LogLevel)enumValue);
Řešení 2: Použití typového odlitku
Dalším způsobem je, Převést hodnotu enum na enumeration member pomocí castingu a poté použít metodu ToString()
.
Jedná se o jednoduchý způsob, který nevyužívá žádné vestavěné funkce C# Enum
.
Nejprve převedeme hodnotu enum na člen enumeration a poté použijeme metodu 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
**/
Shrnutí
V tomto tutoriálu jsme se naučili různé způsoby, jak získat hodnotu názvu enum v jazyce c#
- Předáním parametrů typu a hodnoty enum metodě
Enum.GetName()
- A pomocí typového odlitku na odpovídající typ enum