从未知枚举中获取值

时间:2017-08-30 18:08:32

标签: c# parsing enums

我找到了很多针对给定类型和给定枚举的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,自动选择正确的枚举   它的名字的字符串。

1 个答案:

答案 0 :(得分:-1)

谢谢! https://stackoverflow.com/questions/12270238/how-to-get-value-of-an-unknown-enum-by-name-of-enum-and-name-of-value

这和你的回答让我意识到我没有使用完全限定的Namespace,这导致在Type.GetType-Method上总是为null。

现在这是我的一行解决方案:

string[] result = Enum.GetNames(Type.GetType("[NamespaceName]." + lvKategorie.SelectedItem.ToString()));