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

How can I create a list of objects from data in an enum?

我的应用程序有这个代码

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

它从 SQL 服务器 table 获取数据并使用 IdName 创建对象列表。这很好用,我用它从许多 table 中获取参考数据。

然而,有一个数据集合存储在枚举中:

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();