我有以下代码:
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;
答案 0 :(得分:4)
您应该将循环语句更改为循环FontStyle
,而不是Enum
:
foreach (FontStyle value in Enum.GetValues(typeof(FontStyle)))
或使用implicit typed variable和var
关键字:
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()));