Hur får man fram enum namn från ett värde i C#
Ett av de populära användningsområdena för enum är att hämta enum -namnet från dess värde.
Om vi tar ett exempel från den verkliga världen kommer vi i allmänhet att lagra enum -värden i databasen, dvs. vi kommer endast att lagra heltalsvärden
Efter att ha läst enum -värdet från databasen måste vi omvandla det tillbaka till dess enum -namn.
Det finns två sätt att få fram enum namn från värde i C#
On this page
Lösning 1: Användning av Enum.GetName()
C# Enum.GetName()
funktionen tar två parametrar enum type och value och returnerar enum name.
Ta ett exempel på LogLevel
Enum
public enum LogLevel
{
ERROR=1,
WARN=2,
INFO=3,
DEBUG=4
}
Nu ska vi skicka värdet enum till Enum.GetName()
för att få namnet 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
**/
Om du använder C# .Net 6
-versionen kan du bara skicka enum -värdet (kastat till enum) till Enum.GetName()
-metoden.
/** get enum name from value in .Net 6**/
var enumName6 = Enum.GetName((LogLevel)enumValue);
Lösning 2: Användning av typcasting
Ett annat sätt är att konvertera värdet enum till enumeration member med hjälp av casting och sedan använda ToString()
-metoden.
Detta är ett enkelt sätt som inte använder några C# Enum
inbyggda funktioner.
Konvertera först enum -värdet till enumeration member och använd sedan 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
**/
Sammanfattning
I den här handledningen har vi lärt oss olika sätt att få fram enum name value i c#
- Genom att skicka enum typ- och värdeparametrar till
Enum.GetName()
-metoden - Och genom att använda type casting till motsvarande enum -typ