从班级中获取枚举的价值

时间:2014-10-14 05:25:47

标签: enums enumeration

   public class EmpModel
{
    public string UserName { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
    public Gender Gender { get; set; }
    public int DepartmentId { get; set; }
}


#region [ Enumeration]

public enum Gender
{
    Male = 0,
    FeMale = 1
}

现在如何获得枚举值   var employees = root.Elements(“Employee”);                 foreach(员工中的var元素)                 {                     var employee = new EmpModel                     {

                    UserName = element.Element("UserName").Value,
                    FirstName = element.Element("FirstName").Value,
                    LastName=element.Element("LastName").Value,
                    Age=Convert.ToInt32( element.Element("Age").Value),
                    Gender= element.Element("Gender").Value,    // On this line shows error
                   DepartmentId=Convert.ToInt32(element.Element("Department").Value)                            
                };

由于

1 个答案:

答案 0 :(得分:0)

默认情况下,C#中的枚举由内部(Int32)表示。所以在这种情况下,如果您的XML文件包含字符串" 0"或" 1",您可以简单地解析它,然后将其转换为正确的枚举类型:

Gender = (Gender) Int32.Parse(element.Element("Gender").Value);

如果您正在读取与枚举名称相对应的字符串,则应使用Enum.Parse():

Gender = (Gender) Enum.Parse(typeof(Gender), element.Element("Gender").Value);