Wie bekommt man enum Name von Wert in C#
Einer der beliebtesten Anwendungsfälle von enum ist es, den enum Namen aus seinem Wert zu erhalten.
Betrachten wir ein Beispiel aus der realen Welt, so werden wir im Allgemeinen enum Werte in der Datenbank speichern, d.h. wir werden nur Integer-Werte speichern
Nachdem wir den Wert enum aus der Datenbank gelesen haben, müssen wir ihn wieder in seinen Namen enum umwandeln.
Es gibt zwei Möglichkeiten, den enum Namen aus dem Wert in C# zu erhalten
Auf dieser Seite
Lösung 1: Mit Enum.GetName()
C# Enum.GetName()
Funktion nimmt zwei Parameter enum Typ und Wert und gibt den enum Namen zurück.
Nehmen Sie ein Beispiel für LogLevel
Enum
public enum LogLevel
{
ERROR=1,
WARN=2,
INFO=3,
DEBUG=4
}
Jetzt werden wir den Wert enum an Enum.GetName()
übergeben, um den Namen enum zu erhalten
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
**/
Wenn Sie die C#-Version .Net 6
verwenden, können Sie nur den Wert enum (in enum umgewandelt) an die Methode Enum.GetName()
übergeben.
/** get enum name from value in .Net 6**/
var enumName6 = Enum.GetName((LogLevel)enumValue);
Lösung 2: Typ-Casting verwenden
Eine andere Möglichkeit besteht darin, den Wert enum mittels Casting in das Element enumzu konvertieren und dann die Methode ToString()
zu verwenden.
Dies ist ein einfacher Weg, der keine C# Enum
eingebauten Funktionen verwendet.
Konvertieren Sie zunächst den Wert enum in das Element enumeration und verwenden Sie dann die Methode 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
**/
Zusammenfassung
In diesem Tutorial haben wir gelernt, verschiedene Möglichkeiten, um enum Name Wert in c #
- Durch die Übergabe von enum Typ- und Wertparameter an die Methode
Enum.GetName()
- Und durch Typ-Casting auf den entsprechenden enum Typ