无法获得枚举值

时间:2013-06-25 17:32:03

标签: c# enums

我有以下代码:

private List<KeyValuePair<int, string>> _list = new List<KeyValuePair<int, string>>();

public MyclassConstructor()
{
    foreach (Enum value in Enum.GetValues(typeof(FontStyle)))
        _list.Add(new KeyValuePair<int, string>((int)value, value.ToString()));
}

我无法弄清楚如何将这个枚举的int部分作为关键...相当愚蠢的问题我确定但是我无法让它发挥作用。

我在这里讨论了关于stackoverflow的this文章,但正如你所看到的那样无法正常工作

那么如何获取枚举的int值?

编辑:当我尝试编译时,我收到以下错误消息&#34;无法转换类型&#39; System.Enum&#39; to&#39; int&#39;&#34;

3 个答案:

答案 0 :(得分:4)

您应该将循环语句更改为循环FontStyle,而不是Enum

foreach (FontStyle value in Enum.GetValues(typeof(FontStyle)))

或使用implicit typed variablevar关键字:

foreach (var value in Enum.GetValues(typeof(FontStyle)))

答案 1 :(得分:0)

如果你想从值中获取枚举名称?是的意思是,只需调用Enum.GetName(typeof(yourtype),value)。尝试使用var关键字。

答案 2 :(得分:0)

这将有效:

var _list = Enum.GetValues(typeof(FontStyle))
            .Cast<FontStyle>()
            .Select(x => new KeyValuePair<int, string>((int)x, x.ToString()));