如何在C#中从值中获得enum 名称
enum 的一个流行用例是从它的值中获取enum 的名称。
考虑一个现实世界的例子,通常我们会在数据库中存储enum 。也就是说,我们将只存储整数值。
从数据库中读取enum 值后,我们必须将其转换回它的enum 名称。
在C#中,有种方法可以从值中获得enum 的名称。
On this page
解决方案1:使用Enum.GetName()
C#Enum.GetName()
函数接收两个参数enum 类型和值,并返回enum 名称。
以LogLevel
Enum为例
public enum LogLevel
{
ERROR=1,
WARN=2,
INFO=3,
DEBUG=4
}
现在我们将把enum 的值传递给Enum.GetName()
,以获得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
**/
如果你使用的是C#.Net 6
版本,你可以只把enum 的值(投到enum )传给Enum.GetName()
方法。
/** get enum name from value in .Net 6**/
var enumName6 = Enum.GetName((LogLevel)enumValue);
解决方案2:使用类型转换
另一种方法是,使用铸造法将enum 的值转换为enum命名成员,然后使用ToString()
方法。
这是一个简单的方法,不使用任何C# Enum
的内置函数。
首先将enum 值转换为enum命名成员,然后使用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
**/
摘要
在本教程中,我们学习了在c#中获取enum 名称值的不同方法。
1.通过将enum 的类型和值参数传递给Enum.GetName()
方法。
2.并通过使用类型转换到相应的enum 类型。