This question already has answers here:
Convert a string to an enum in C#
(23个答案)
2年前关闭。
我有以下代码:
我想做的就是获取noa的值并将其转换为NOA。
这是我尝试过的。但是我收到一条错误消息,提示“字符串不包含值的定义”:
当我尝试这个。我收到一条错误消息:“无法将类型字符串转换为Japanese.NOA:
有人可以告诉我如何获得价值并将其投入noa吗?
通过执行此行,您将在
(23个答案)
2年前关闭。
我有以下代码:
public string GetSetting(string setting)
{
return db2.ExecuteScalar<string>("SELECT VALUE FROM Setting WHERE SettingType = ?", setting);
}
public enum NOA
{
All = 0,
Five = 5,
Seven = 7,
Nine = 9,
Ten = 10
}
public static partial class Extensions
{
public static string Text(this NOA noa)
{
switch (noa)
{
case NOA.Ten: return "10";
case NOA.Five: return "5";
case NOA.Seven: return "7";
case NOA.Nine: return "9";
}
return "";
}
}
我想做的就是获取noa的值并将其转换为NOA。
这是我尝试过的。但是我收到一条错误消息,提示“字符串不包含值的定义”:
NOA noa = (NOA)App.DB.GetSetting("NumberOfAnswers").Value;
当我尝试这个。我收到一条错误消息:“无法将类型字符串转换为Japanese.NOA:
NOA noa = (NOA)App.DB.GetSetting("NumberOfAnswers");
有人可以告诉我如何获得价值并将其投入noa吗?
最佳答案
似乎您正在从指定方法以字符串形式获取输出。并且希望将其转换为枚举,这里比较适合您的选择是TryParse,它可以像以下方式使用:
NOA noa;
bool conversionResult = Enum.TryParse(App.DB.GetSetting("NumberOfAnswers"), out noa);
通过执行此行,您将在
conversionResult
中获得一个布尔值,如果为true则表示转换成功,如果为false则意味着转换失败,这一次您将在NOA
中获得noa
的默认值,将App.DB.GetSetting("NumberOfAnswers")
的返回值设为"10"
,则noa
的值将为Ten
,而conversionResult
的值为true
10-08 17:59