Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从枚举中的数据创建对象列表?_C#_Enums - Fatal编程技术网

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

C# 如何从枚举中的数据创建对象列表?,c#,enums,C#,Enums,我的应用程序有以下代码 var result = await db.ContentTypes .Select(e => new { Id = e.ContentTypeId, Name = e.Name }) .AsNoTracking() .ToListAsync(); 它从SQL Server表中获取数据,并创建具有Id和Name的对象列表。这很有效,我使用它从许多表中获取参考数据 但是,有一个数据集合存储在枚举中: public

我的应用程序有以下代码

var result = await db.ContentTypes
   .Select(e => new
   {
      Id = e.ContentTypeId,
      Name = e.Name
   })
   .AsNoTracking()
   .ToListAsync();
它从SQL Server表中获取数据,并创建具有
Id
Name
的对象列表。这很有效,我使用它从许多表中获取参考数据

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

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();
Enum.GetValues(typeof(ERole))
.Cast()
.Select(x=>new{Id=(int)x,Name=x.ToString()})
.ToList();

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

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