我想知道是否可以获取枚举值的属性而不是枚举本身的属性?例如,假设我有以下枚举:
using System.ComponentModel; // for DescriptionAttribute
enum FunkyAttributesEnum
{
[Description("Name With Spaces1")]
NameWithoutSpaces1,
[Description("Name With Spaces2")]
NameWithoutSpaces2
}
Run Code Online (Sandbox Code Playgroud)
我想要的是枚举类型,产生2元组的枚举字符串值及其描述.
价值很容易:
Array values = System.Enum.GetValues(typeof(FunkyAttributesEnum));
foreach (int value in values)
Tuple.Value = Enum.GetName(typeof(FunkyAttributesEnum), value);
Run Code Online (Sandbox Code Playgroud)
但是如何获取描述属性的值,以填充Tuple.Desc?如果属性属于枚举本身,我可以想到如何做到这一点,但我不知道如何从枚举的值中获取它.
我已声明枚举如下
public enum State
{
KARNATAKA = 1,
GUJRAT = 2,
ASSAM = 3,
MAHARASHTRA = 4,
GOA = 5
}
Run Code Online (Sandbox Code Playgroud)
从外部来源,我得到状态值为 1 或 2 或 3 或 4 或 5。
根据我得到的值,我需要查找这个枚举并获取它的字符串。
例如:如果输入值为 1,我需要将 KARNATAKA 作为字符串返回。同样,如果输入值为 5,我需要将 GOA 作为字符串返回。
是否有一种简单的方法可以不使用 CASE 或 IFELSE 来获取字符串。