枚举<Object>的枚举(Id,Name)

Pal*_*lmi 7 c# asp.net-mvc enums

enumid 转换为Id/Name对象列表的最佳做法是什么?

Enum:

public enum Type
{
    Type1= 1,
    Type2= 2,
    Type3= 3,
    Type4= 4
}
Run Code Online (Sandbox Code Playgroud)

Object:

public class TypeViewModel
{
    public int Id { get; set; }
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

就像是:

var typeList = new List<TypeViewModel>();
foreach (Type type in Enum.GetValues(typeof(Type)))
{
    typeList.Add(new TypeViewModel(type.Id, type.Name));
}
Run Code Online (Sandbox Code Playgroud)

Sal*_*ari 12

使用LINQ:

var typeList = Enum.GetValues(typeof(Type))
               .Cast<Type>()
               .Select(t => new TypeViewModel
               {
                   Id = ((int)t),
                   Name = t.ToString()
               });
Run Code Online (Sandbox Code Playgroud)

结果:

在此输入图像描述