将value/type字符串对转换为C#中的枚举值

Convert value/type string pair to enumeration value in C#

这是我的声明。

public enum Egypt {
    Cairo = (long)1521894,
    Alexandria = (long)1522006,
    Giza = (long)1521643
}

从 aspx 页面我得到值 Egypt 作为 query-string。有了这个值,我想解析这个枚举的名称和值 Egypt.

var values = Enum.GetValues(typeof(Egypt)).Cast<Egypt>();
foreach (Egypt in values)
{
    long woeid = ((long)(Egypt)(s));
}

我有代码来获取这样的值,但我的意思是值枚举 - 埃及本身是在运行时确定的。我将如何实现它?

您可以使用反射来查找类型:

var vals = Enum.GetValues(Type.GetType("Egypt"));

Fiddle: https://dotnetfiddle.net/AxlFW7

当然,您需要添加正确的命名空间and/or在所需的程序集中找到它并检查可能的错误