Kā iegūt enum nosaukumu no vērtības C# valodā

Viens no populārākajiem enum izmantošanas gadījumiem ir iegūt enum nosaukumu no tā vērtības.

Aplūkojiet reālās pasaules piemēru, parasti datu bāzē mēs glabāsim enum vērtības, t. i., mēs glabāsim tikai veselu skaitļu vērtības

Un pēc enum vērtības nolasīšanas no datu bāzes mums tā jāpārveido atpakaļ uz enum nosaukumu.

Ir divi veidi, kā no vērtības iegūt enum nosaukumu C#

On this page

Risinājums Nr. 1: Izmantojot Enum.GetName()

C# Enum.GetName() funkcija pieņem divus parametrus enum tips un vērtība un atgriež enum nosaukumu.

Ņemsim piemēru LogLevel Enum

public enum LogLevel
{
   ERROR=1, 
   WARN=2, 
   INFO=3, 
   DEBUG=4
}

Tagad mēs nodosim enum vērtību Enum.GetName(), lai iegūtu enum nosaukumu

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
**/

Ja izmantojat C# .Net 6 versiju, Enum.GetName() metodei varat nodot tikai enum vērtību (cast to enum).


/** get enum name from value in .Net 6**/
var enumName6 = Enum.GetName((LogLevel)enumValue);

Risinājums Nr. 2: izmantojot tipa atveidi

Cits veids ir, Konvertēt enum vērtību uz enumerācijas locekli, izmantojot kastingu, un pēc tam izmantot ToString() metodi.

Šis ir vienkāršs veids, kas neizmanto nevienu C# Enum iebūvēto funkciju.

Vispirms konvertējiet enum vērtību uz enumeration member un pēc tam izmantojiet ToString() metodi.

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
**/

Kopsavilkums

Šajā pamācībā mēs uzzinājām dažādus veidus, kā iegūt enum nosaukuma vērtību c#

  1. Nododot enum tipa un vērtības parametrus Enum.GetName() metodei
  2. Un, izmantojot tipa atveidi, to pārveidojot uz atbilstošo enum tipu