当我只有枚举的类型时,如何获得枚举的整数值

问题描述

|| 我认为这个问题需要一些代码
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
函数中,我具有枚举的值。所以我迭代值,我也想获得该枚举值的整数值。 所以我的值是\'red \'和\'green \',我也想得到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。     ,        尝试
(int)Enum.Parse(enumType,v)
    ,        
public static class StringEnum
{


    public static string GetStringValue(Enum value)
    {
        string output = null;
        Type type = value.GetType();

        FieldInfo fi = type.GetField(value.ToString());
        StringValue[] attr = fi.GetCustomAttributes(typeof(StringValue),false) as StringValue[];

        if (attr.Length > 0)
        {
            output = attr[0].Value;
        }
        return output;
    }
}
它是获取字符串值的方法。
public enum CampaignRequestType { [StringValue(\"None\")] None = 0,[StringValue(\"Pharmacy Cards\")] Pharmacy_Cards = 1,[StringValue(\"Prospect Campaign\")] Prospect_Campaign = 2,[StringValue(\"Tradeshow/Advertising\")] Tradeshow_Advertising = 3 }
它是一个枚举
string item = StringEnum.GetStringValue((Enumeration.CampaignRequestType)updateRequestStatus.RequestType_Code);
(Enumeration.CampaignRequestType)
是我的列举  
updateRequestStatus.RequestType_Code
是数据库字段int类型 我将int值转换为枚举类型     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...