Sådan får du enum navn fra værdi i C#
En af de populære anvendelser af enum er at få enum navnet fra dets værdi.
I et eksempel fra den virkelige verden vil vi generelt gemme enum -værdier i databasen, dvs. vi vil kun gemme heltalsværdier
Og efter at have læst enum -værdien fra databasen skal vi konvertere den tilbage til dens enum -navn.
Der er to måder at få enum navn fra værdi i C#
On this page
Løsning 1: Brug af Enum.GetName()
C# Enum.GetName()
funktionen tager to parametre enum type og værdi og returnerer enum navnet.
Tag et eksempel på LogLevel
Enum
public enum LogLevel
{
ERROR=1,
WARN=2,
INFO=3,
DEBUG=4
}
Nu skal vi sende værdien enum til Enum.GetName()
for at få navnet 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
**/
Hvis du bruger C# .Net 6
-versionen, kan du kun sende enum -værdien (kastet til enum) til Enum.GetName()
-metoden.
/** get enum name from value in .Net 6**/
var enumName6 = Enum.GetName((LogLevel)enumValue);
Løsning 2: Brug af type casting
En anden måde er at konvertere enum -værdien til enum-elementet ved hjælp af casting og derefter bruge ToString()
-metoden.
Dette er en enkel måde, som ikke bruger nogen C# Enum
indbyggede funktioner.
Først konverteres enum -værdien til enumeration-elementet, og derefter anvendes ToString()
-metoden.
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
**/
Resumé
I denne tutorial lærte vi forskellige måder at få enum name value i c#
- Ved at sende enum type- og værdiparametre til
Enum.GetName()
-metoden - Og ved at bruge type casting til den tilsvarende enum type