我有一个枚举类如下:
namespace Import.DataObject
{
internal enum Status
{
FullTime,
Terminated,
}
}
在我的主程序中,我有一个DB调用,然后是
foreach (ClientStatus status in databaseStatus)
{
if (status.Name == "FullTime")
{
}
if (status.Name == "Terminated")
{
}
}
如何根据if语句设置枚举? Name有一个与之关联的ID,我希望该ID为enum中的respecitve名称,我在if语句中都有可用的名称和ID。
答案 0 :(得分:2)
使用Enum.Parse
:
Status val = (Status)Enum.Parse(typeof(Status), status.Name);
如果您不确定该字符串是否为有效的枚举,请使用Enum.TryParse
:
Status? val;
if (!Enum.TryParse<Status>(status.Name, out val))
val = null;
然后转换为(int)以获取数字值:
status.ID = (int)val;