Ako získať názov enum z hodnoty v jazyku C#
Jedným z populárnych prípadov použitia enum je získanie enum názvu z jeho hodnoty.
Uvažujme reálny príklad, vo všeobecnosti budeme v databáze ukladať hodnoty enum. Teda budeme ukladať len celočíselné hodnoty
A po načítaní hodnoty enum z databázy ju musíme previesť späť na jej názov enum.
Existujú dva spôsoby, ako získať názov enum z hodnoty v jazyku C#
On this page
Riešenie 1: Použitie Enum.GetName()
C# Enum.GetName()
funkcia prijíma dva parametre enum typ a hodnotu a vracia názov enum.
Vezmime si príklad LogLevel
Enum
public enum LogLevel
{
ERROR=1,
WARN=2,
INFO=3,
DEBUG=4
}
Teraz odovzdáme hodnotu enum enumu Enum.GetName()
, aby sme získali názov 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
**/
Ak používate verziu C# .Net 6
, môžete metóde Enum.GetName()
odovzdať iba hodnotu enum (cast na enum).
/** get enum name from value in .Net 6**/
var enumName6 = Enum.GetName((LogLevel)enumValue);
Riešenie 2: Použitie typového kastingu
Ďalším spôsobom je, Konvertovať hodnotu enum na enumeration member pomocou castingu a potom použiť metódu ToString()
.
Ide o jednoduchý spôsob, ktorý nevyužíva žiadne vstavané funkcie C# Enum
.
Najprv prekonvertujte hodnotu enum na enumeration member a potom použite metódu 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
**/
Zhrnutie
V tomto návode sme sa naučili rôzne spôsoby, ako získať hodnotu názvu enum v jazyku c#
- Pomocou odovzdania parametrov typu enum a hodnoty metóde
Enum.GetName()
- A pomocou typového kastingu na zodpovedajúci typ enum