根据DB中的值设置枚举

时间:2012-10-22 16:05:56

标签: c# c#-4.0

我有一个枚举类如下:

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。

1 个答案:

答案 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;