如何从枚举中的数据创建对象列表?

时间:2015-02-21 10:17:00

标签: c# enums

我的应用程序有此代码

var result = await db.ContentTypes
   .Select(e => new
   {
      Id = e.ContentTypeId,
      Name = e.Name
   })
   .AsNoTracking()
   .ToListAsync();

它从SQL Server表中获取数据,并创建一个包含IdName的对象列表。这很好用,我用它来从许多表中获取参考数据。

但是,有一个数据集存储在枚举中:

public enum ERole { 
    Super         = 0,
    Admin         = 1,
    ....
    Guest         = 8
}

我知道我可以对解决方案进行硬编码,而不是拥有两个包含角色信息的硬编码结构。

如何从枚举中获取数据并将其变为带有Id和Name的列表,就像我对内容类型一样?

1 个答案:

答案 0 :(得分:4)

如果我能正确理解你想要的东西:

Enum.GetValues(typeof(ERole))
    .Cast<ERole>()
    .Select(x => new { Id = (int)x, Name = x.ToString() })
    .ToList();