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



我的应用程序有这个代码

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和名称的列表中,就像处理内容类型一样?

如果我没有弄错,你想要这样的东西:

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

最新更新