循环通过C#枚举';s键的AND值
本文关键字:键的 AND 枚举 循环 | 更新日期: 2023-09-27 18:30:04
给定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"answers"Fresh",Number属性设置为0、1和2。
我该怎么做?
Enum类具有您要查找的方法。
foreach(int i in Enum.GetValues(typeof(stuff)))
{
String name = Enum.GetName(typeof(stuff), i);
NewObject thing = new NewObject
{
Name = name,
Number = i
};
}
您可以使用LINQ(几乎一如既往):
List<NewObject> stuff = Enum.GetValues(typeof(stuffEnum)).Cast<stuffEnum>()
.Select(s => new NewObject { Name = s.ToString(), Number = (int) s })
.ToList();
foreach (var enumValue in Enum.GetValues(typeof(StuffEnum)))
{
Console.WriteLine("Name: {0}, Value: {1}", enumValue, (int)enumValue);
}
中的结果
Name: New, Value: 0
Name: Old, Value: 1
Name: Fresh, Value: 2