获取Enum类型中的元素数量并迭代它们

时间:2012-08-30 09:58:44

标签: c# reflection enums

有没有办法迭代枚举类型中的元素?类似的东西:

public enum MyEnum
{
   One,
   Two,
   Three,
}

foreach(var temp in MyEnum)
{
    //Do something
}

我可以通过反思或其他方式来实现吗?

4 个答案:

答案 0 :(得分:3)

使用System.Array Enum.GetValues(Type)方法。

 foreach(var temp in Enum.GetValues(typeof(MyEnum)))
  {
      //code
   }

答案 1 :(得分:2)

使用Enum.GetValues(typeof(MyEnum))

foreach(MyEnum temp in Enum.GetValues(typeof(MyEnum))) 
{ 
    //Do something 
}

请注意:我使用MyEnum temp代替var temp,因为GetValues未返回强类型数组。

答案 2 :(得分:0)

foreach (var name in Enum.GetNames(typeof(MyEnum))

答案 3 :(得分:0)

var test = Enum.GetValues(typeof(MyEnum));
foreach (MyEnum e in test)
{
    Console.Write(e);
}

请参阅Enum.GetValues