Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将C中的值/类型字符串对转换为枚举值#_C#_Enums - Fatal编程技术网

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

C# 将C中的值/类型字符串对转换为枚举值#,c#,enums,C#,Enums,这是我的声明 public enum Egypt { Cairo = (long)1521894, Alexandria = (long)1522006, Giza = (long)1521643 } 从aspx页面中,我以查询字符串的形式获得值埃及。使用此值,我想解析此枚举的名称和值Egypt var values = Enum.GetValues(typeof(Egypt)).Cast<Egypt>(); foreach (Egypt in values

这是我的声明

public enum Egypt {
    Cairo = (long)1521894,
    Alexandria = (long)1522006,
    Giza = (long)1521643
}
从aspx页面中,我以
查询字符串的形式获得值
埃及
。使用此值,我想解析此枚举的名称和值
Egypt

var values = Enum.GetValues(typeof(Egypt)).Cast<Egypt>();
foreach (Egypt in values)
{
    long woeid = ((long)(Egypt)(s));
}
var values=Enum.GetValues(typeof(埃及)).Cast();
foreach(价值观上的埃及)
{
龙威德=((龙)(埃及)(s));
}

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

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

var vals = Enum.GetValues(Type.GetType("Egypt"));
小提琴:


当然,您需要添加正确的名称空间和/或在所需的程序集中找到它,并检查是否存在可能的错误

请在提问之前进行搜索。只要搜索你问题的标题就可以找到正确的答案。你有一个观点,但这与这个问题不同。我已经回答了那个问题。两者都不同。您所指向的链接指向枚举对象中的值,我的问题指向枚举对象。你可以检查一下。啊,是的,我明白了。重新开放。听起来您可能只是想要
Type.GetType()
。。。虽然现在还不清楚
City
是从哪里来的,或者当
埃及的基本类型是
int
时,你为什么要到处投
long
。。。或者什么是
s
。您完全可能根本不需要枚举,而只需要字典。您需要类似于
typeof(埃及).Assembly.GetType(“YourNamespace.something.”+enumName)
的内容,并将其传递给
Enum.GetValues
。我欣赏
typeof(埃及)
有点鸡毛蒜皮,但我不知道您的枚举将位于哪个程序集/命名空间中。这是我的错误,它不是城市,它必须是埃及。我已经改正了