相关疑难解决方法(0)

获得Enum价值的属性

我想知道是否可以获取枚举值的属性而不是枚举本身的属性?例如,假设我有以下枚举:

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?如果属性属于枚举本身,我可以想到如何做到这一点,但我不知道如何从枚举的值中获取它.

c# reflection enums .net-attributes

453
推荐指数
9
解决办法
27万
查看次数

在 C# 中从枚举中获取字符串名称

我已声明枚举如下

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 来获取字符串。

.net c# enums

-1
推荐指数
2
解决办法
1万
查看次数

标签 统计

c# ×2

enums ×2

.net ×1

.net-attributes ×1

reflection ×1