假设我有变量,其值(例如"listMovie"
)是enum
成员的名称:
public enum Movies
{
regMovie = 1,
listMovie = 2 // member whose value I want
}
在这个例子中,我想获得值2
。这可能吗?这是我试过的:
public static void getMoviedata(string KeyVal)
{
if (Enum.IsDefined(typeof(TestAppAreana.MovieList.Movies), KeyVal))
{
//Can print the name but not value
((TestAppAreana.MovieList.Movies)2).ToString(); //list
Enum.GetName(typeof(TestAppAreana.MovieList.Movies), 2);
}
}
答案 0 :(得分:29)
假设KeyVal
是表示某个枚举名称的字符串,您可以通过以下方式执行此操作:
int value = (int)Enum.Parse(typeof(TestAppAreana.MovieList.Movies), KeyVal);
答案 1 :(得分:4)
您想从字符串名称中获取Enum值。因此,您可以使用Enum.Parse方法。
int number = (int)Enum.Parse(typeof(TestAppAreana.MovieList.Movies), KeyVal)
您也可以尝试Enum.TryParse来检查解析是否成功。
Movies movie;
if (Enum.TryParse(KeyVal, true, out movie))
{
}
答案 2 :(得分:1)
使用:
var val= (int)Enum.Parse(typeof(TestAppAreana.MovieList.Movies), KeyVal)
答案 3 :(得分:-1)
不确定过去,因为我是 C# 新手,但截至今天,这有效并给出了 2 的值:
axis=1