好吧,我不认为标题说得对......但是这里有:
我有一个大约有40个枚举的课程。即:
Class Hoohoo
{
public enum aaa : short
{
a = 0,
b = 3
}
public enum bbb : short
{
a = 0,
b = 3
}
public enum ccc : short
{
a = 0,
b = 3
}
}
现在说我有一个字符串和值的字典,每个字符串都是上面提到的枚举的名称:
Dictionary<string,short>{"aaa":0,"bbb":3,"ccc":0}
我需要将“aaa”更改为HooBoo.aaa以查找0.由于枚举是静态的,因此无法找到执行此操作的方法。否则,我将不得不为每个枚举编写一个方法来将字符串绑定到它。我可以这样做,但那就是编写的代码。
谢谢, 库特
答案 0 :(得分:4)
您必须使用Reflection来获取基础枚举类型:
Type t = typeof(Hoohoo);
Type enumType = t.GetNestedType("aaa");
string enumName = Enum.GetName(enumType, 0);
如果您想获得实际的枚举值,则可以使用:
var enumValue = Enum.Parse(enumName, enumType);
答案 1 :(得分:2)
使用
aaa myEnum =(aaa) Enum.Parse(typeof(aaa), "a");
答案 2 :(得分:0)
您想要转换字符串 - &gt;枚举? This应该有所帮助。
答案 3 :(得分:0)
请记住,Enum.Parse没有强类型...我认为这将是你的场景中的一个真正的限制。从Ngu的例子中可以看出,你必须输出输出。