for (int i = (int)MY_ENUM.First; i <= (int)MY_ENUM.Last; i++)
{
//do work
}
Run Code Online (Sandbox Code Playgroud)
有没有更优雅的方式来做到这一点?
Ber*_*ard 58
您应该能够使用以下内容:
foreach (MY_ENUM enumValue in Enum.GetValues(typeof(MY_ENUM)))
{
// Do work.
}
Run Code Online (Sandbox Code Playgroud)
枚举有点像整数,但你不能依赖它们的值来保持顺序或提升.您可以将整数值分配给会破坏简单for循环的枚举值:
public class Program
{
enum MyEnum
{
First = 10,
Middle,
Last = 1
}
public static void Main(string[] args)
{
for (int i = (int)MyEnum.First; i <= (int)MyEnum.Last; i++)
{
Console.WriteLine(i); // will never happen
}
Console.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
正如其他人所说,Enum.GetValues是走的路.
foreach (var value in Enum.GetValues(typeof(MY_ENUM))) { ... }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33626 次 |
| 最近记录: |