当我只有枚举的类型时,如何获得枚举的整数值
本文关键字:枚举 何获得 整数 类型 | 更新日期: 2023-09-27 17:59:06
我认为这个问题需要一些代码:
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
函数中,我有枚举的值。所以我迭代这些值,我也想得到这个枚举值的整数值。
所以我的值是"红色"answers"绿色",我也想得到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)
是我的枚举并且CCD_ 3是数据库字段int型
i将int值强制转换为枚举类型