循环遍历C#枚举类型的键和值

9 浏览
0 Comments

循环遍历C#枚举类型的键和值

这个问题已经在这里有了答案

如何对枚举进行枚举?

给定C#的枚举:

public enum stuffEnum: int
{
    New = 0,
    Old = 1,
    Fresh = 2
}

我该如何以一种能够在单个循环中复制键和其值的方式遍历它?例如:

foreach(var item in stuffEnum)
{
    NewObject thing = new NewObject{
       Name = item.Key,
       Number = item.Value
    }
}

这样,您最终会得到3个对象,其Name属性设置为“New”,“Old”和“Fresh”,而Number属性设置为0、1和2。

我该如何做到这一点?

admin 更改状态以发布 2023年5月21日
0
0 Comments

你可以使用LINQ(几乎总是这样):

List stuff = Enum.GetValues(typeof(stuffEnum)).Cast()
    .Select(s => new NewObject { Name = s.ToString(), Number = (int) s })
    .ToList();

0
0 Comments

Enum类拥有你所寻找的方法。

foreach(int i in Enum.GetValues(typeof(stuff)))
{
    String name = Enum.GetName(typeof(stuff), i);
    NewObject thing = new NewObject
    {
        Name = name,
        Number = i
    };
}

0