我找到了很多针对给定类型和给定枚举的Enum-Parsing解决方案。但是我想知道当我只有Enum的名字我想要的价值时我该怎么办? 我目前的解决方案是一个非常愚蠢的切换案例场景,它执行以下操作:
string[] result = new string[0];
switch (lvKategorie.SelectedItem.ToString())
{
case "Warten":
result = Enum.GetNames(typeof(Warten));
break;
case "Maus":
result = Enum.GetNames(typeof(Maus));
break;
我现在希望有一个更好的方法,因为我的开关盒太长了。 我只用一个字符串得到Enum的名字。这是由我的程序生成的,我甚至不知道我想在程序的这一点之前获得的Enum的名称。 那么我如何选择内部代码中的Enum来获取值? (如果我的解决方案也解析我只是没有做对,需要进一步解释它是如何工作的。)
绝对清楚:我想要替换“typeof(xyz)” - 部分 Enum.GetNames-Methods,自动选择正确的枚举 它的名字的字符串。
答案 0 :(得分:-1)
这和你的回答让我意识到我没有使用完全限定的Namespace,这导致在Type.GetType-Method上总是为null。
现在这是我的一行解决方案:
string[] result = Enum.GetNames(Type.GetType("[NamespaceName]." + lvKategorie.SelectedItem.ToString()));