我认为这个问题需要一些代码:

private TypeValues GetEnumValues(Type enumType, string description)
        {
            TypeValues wtv = new TypeValues();
            wtv.TypeValueDescription = description;
            List<string> values = Enum.GetNames(enumType).ToList();
            foreach (string v in values)
            {
                //how to get the integer value of the enum value 'v' ?????
                wtv.TypeValues.Add(new TypeValue() { Code = v, Description = v });
            }
            return wtv;

        }

像这样调用它:
GetEnumValues(typeof(AanhefType), "some name");

GetEnumValues 函数中,我有枚举的值。所以我迭代这些值,我也想获得该枚举值的整数值。

所以我的值是“红色”和“绿色”,我也想得到 0 和 1。

当我的函数中有 Enum 时,我可以从字符串创建枚举值并将其转换为该枚举,然后将其转换为 int,但在这种情况下,我没有枚举本身,只有类型枚举的。

我也尝试将实际枚举作为参数传递,但不允许将枚举作为参数传递。

所以现在我被卡住了......

最佳答案

private TypeValues GetEnumValues(Type enumType, string description)
        {
            TypeValues wtv = new TypeValues();
            wtv.TypeValueDescription = description;
            List<string> values = Enum.GetNames(enumType).ToList();
            foreach (string v in values)
            {
                //how to get the integer value of the enum value 'v' ?????

               int value = (int)Enum.Parse(enumType, v);

                wtv.TypeValues.Add(new TypeValue() { Code = v, Description = v });
            }
            return wtv;

        }

http://msdn.microsoft.com/en-us/library/essfb559.aspx

Enum.Parse 将采用 Type 和 String 并返回对枚举值之一的引用 - 然后可以简单地将其强制转换为 int。

关于c# - 当我只有枚举类型时,如何获取枚举的整数值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6354091/

10-10 18:19
查看更多