我怎样才能用一个整数来引用一个特定的枚举?

这个问题在这里已经有了答案:

  • 在int C中枚举21枚答案

  • 你只需要投射到你的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?

    下一篇: Assigning a variable enum value