如何将字符串强制转换为C#中的枚举标记值(作为枚举名称)?

如何将字符串强制转换为C#中的枚举标记值(作为枚举名称)?,c#,enums,C#,Enums,可能重复: 如何转换名称为现有枚举标记(名称为枚举标题)的字符串 成为枚举的类型 不成为枚举列出的变量值之一, 但是要成为Enum类型的Enum标记名吗 例如,我可能有 Enum MyEnum { A,B,C,D }; 然后 String a = "MyEnum"; 您需要使用Enum将其解析为Enum。解析: myEnum result = (myEnum)Enum.Parse(typeof(myEnum), stringToConvert); 这里有两个因素需要考虑。首先,Enum.P

可能重复:

如何转换名称为现有枚举标记(名称为枚举标题)的字符串 成为枚举的类型

不成为枚举列出的变量值之一,
但是要成为Enum类型的Enum标记名吗

例如,我可能有

Enum MyEnum { A,B,C,D };
然后

String a = "MyEnum";

您需要使用Enum将其解析为Enum。解析:

myEnum result = (myEnum)Enum.Parse(typeof(myEnum), stringToConvert);

这里有两个因素需要考虑。首先,Enum.Parse采用目标枚举的类型。其次,它只返回类型对象,因此您需要手动将其转换为正确的枚举类型。

您需要使用enum将其解析为enum。parse:

myEnum result = (myEnum)Enum.Parse(typeof(myEnum), stringToConvert);
Enum e = (Enum)Enum.Parse(typeof(Enum), "A", true);
这里有两个因素需要考虑。首先,Enum.Parse采用目标枚举的类型。其次,它只返回类型对象,因此需要手动将其转换为正确的枚举类型

Enum e = (Enum)Enum.Parse(typeof(Enum), "A", true);
这应该可以


这个问题在今天似乎很流行-怎么回事?我想你想把一个简单的类型名变成一个系统。类型?如果没有比简单名称更多的可用信息,就很难可靠地做到这一点。您知道类型所在的程序集吗?您是否具有程序集限定名或至少具有完全限定类型名?无论如何,这应该是您开始的:从全名创建C#Type。这门关得太匆忙了;我相信OP想要的是与“复制”中不同的东西。这个问题今天似乎很流行-发生了什么?我想你想把一个简单的类型名变成一个系统。类型?如果没有比简单名称更多的可用信息,就很难可靠地做到这一点。您知道类型所在的程序集吗?您是否具有程序集限定名或至少具有完全限定类型名?无论如何,这应该是您开始的:从全名创建C#Type。这门关得太匆忙了;我相信OP想要与“复制品”中不同的东西。