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 #

  1. Durch die Übergabe von enum Typ- und Wertparameter an die Methode Enum.GetName()
  2. Und durch Typ-Casting auf den entsprechenden enum Typ