我怎样才能用一个整数来引用一个特定的枚举?
这个问题在这里已经有了答案:
你只需要投射到你的enum
:
Echemicals val = (Echemicals)i
;
但是你不需要为此使用int[]
。 也许你应该提供更多的细节问题。
我相信如果你反其道而行,先获得所有枚举并将它们转换为整数:
var enumValues = Enum.GetValues(typeof(Echemicals));
var decimals = enumValues.OfType<Echemicals>().Select(x => (int)x).ToArray();
默认情况下,.NET中的枚举值按照声明的顺序从零开始分配整数值。 因此,通过这个枚举
enum Echemicals { oxygen, hydrogen, carbon }
int zero = (int)Echemicals.oxygen;
int one = (int)Echemicals.hydrogen;
int two = (int)Echemicals.carbon;
反之亦然:
Echemicals oxy = = (Echemicals)0;
但chemicals
是一个整数数组,而不是Echemicals
。 所以这听起来像你想这样:
int[i] = i;
如果在其他时间想要将int[2]
转换为对应于该整数值的Echemicals
值,
Echemicals chem = (Echemicals)int[2];
但是如果你想要一个所有Echemicals
枚举值的数组,这将起作用 - 并且它比这个整数数组更有用:
var echemValues = (Echemicals[])Enum.GetValues(typeof(Echemicals));
Echemicals oxy = echemValues[0];
int thisWillBeZero = (int)echemValues[0];
您还可以在定义枚举类型时明确指定整数值:
enum Echemicals { oxygen = 8, hydrogen = 1, carbon = 6 }
链接地址: http://www.djcxy.com/p/22531.html
上一篇: How can I reference a specific enumeration by an integer?