0

我有以下代码:

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上参考了这篇文章,但你可以看到这不起作用

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

编辑:当我尝试编译时,我收到以下错误消息“无法将类型'System.Enum'转换为'int'”

4

3 回答 3

4

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

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

或使用隐式类型变量var关键字:

foreach (var value in Enum.GetValues(typeof(FontStyle)))
于 2013-06-25T17:37:24.190 回答
0

如果要从 value 中获取 Enum Name?是的意思是,只需调用 Enum.GetName(typeof(yourtype),value)。尝试使用 var 关键字。

于 2013-06-25T17:38:22.713 回答
0

这将起作用:

var _list = Enum.GetValues(typeof(FontStyle))
            .Cast<FontStyle>()
            .Select(x => new KeyValuePair<int, string>((int)x, x.ToString()));
于 2013-06-25T18:05:09.637 回答