如何从枚举中创建IEnumerable

Sam*_*tar 9 .net c# enums

可能重复:
Enum上的IEnumerable扩展方法
如何使用Generics创建一种从枚举中创建IEnumerable的方法?

鉴于这样的枚举:

public enum City
{
    London    = 1,
    Liverpool  = 20,
    Leeds       = 25
}

public enum House
{
    OneFloor    = 1,
    TwoFloors = 2
}
Run Code Online (Sandbox Code Playgroud)

如何将这些转换为具有两个名为"data"和"value"的字段的IEnumerable列表.是否有可能采用通用方法或方法?请注意,值并不总是连续的.

dri*_*iis 11

你可以使用Enum.GetValues:

City[] values = (City[])Enum.GetValues(typeof(City));
var valuesWithNames = from value in values
                      select new { value = (int)value, name = value.ToString() };
Run Code Online (Sandbox Code Playgroud)