Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
你能在C#中循环一个枚举吗? for(int i=(int)MY_ENUM.First;i_C#_Enums - Fatal编程技术网

你能在C#中循环一个枚举吗? for(int i=(int)MY_ENUM.First;i

你能在C#中循环一个枚举吗? for(int i=(int)MY_ENUM.First;i,c#,enums,C#,Enums,您应该能够利用以下功能: for (int i = (int)MY_ENUM.First; i <= (int)MY_ENUM.Last; i++) { //do work } 看看: public static Array GetValues(Type enumType)方法返回一个带有anEnum枚举值的数组。由于数组实现了IEnumerable接口,因此可以枚举它们。 例如: foreach (var value in Enum.GetValues(typeof(MY_EN

您应该能够利用以下功能:

for (int i = (int)MY_ENUM.First; i <= (int)MY_ENUM.Last; i++)
{
    //do work
}
看看:


public static Array GetValues(Type enumType)
方法返回一个带有anEnum枚举值的数组。由于数组实现了IEnumerable接口,因此可以枚举它们。 例如:

foreach (var value in Enum.GetValues(typeof(MY_ENUM))) { ... }

您可以在上看到更详细的解释。

枚举有点像整数,但您不能依赖它们的值始终是连续的或升序的。您可以将整数值指定给枚举值,这将打破简单的
for
循环:

 EnumName[] values = (EnumName[])Enum.GetValues(typeof(EnumName));
 foreach (EnumName n in values) 
     Console.WriteLine(n);
公共类程序
{
髓鞘
{
第一个=10,
中间的
最后=1
}
公共静态void Main(字符串[]args)
{

对于(int i=(int)MyEnum.First;i,您的代码将仅适用于由int支持的枚举,其中范围是连续的。的可能重复项
 EnumName[] values = (EnumName[])Enum.GetValues(typeof(EnumName));
 foreach (EnumName n in values) 
     Console.WriteLine(n);
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();
    }
}