带有已定义迭代器的c# for循环

本文关键字:for 循环 迭代器 定义 | 更新日期: 2023-09-27 18:12:44

我想使用已经定义的迭代器进行循环。

目前我正在使用

int i;
while (i<10)
{
    Console.Writeline(i);
    i++;
}

这很难看,因为其他人以后可能会删除i++。如果它被一大块代码与while语句分开,就不清楚它的目的是什么。

我真正想要的是像

int i;
for (i<10; i++)
{
    Console.Writeline(i);
}

这清楚地表明发生了什么,但它在c#中无效。

到目前为止我想出的最好的是

int i;
for (int z; i<10; i++)
{
    Console.Writeline(i);
}

但那是丑陋的。c#是否为我提供了一种优雅的方式?

带有已定义迭代器的c# for循环

你没有在循环的第一部分有任何东西:

for (; i < 10; i++)
{
    Console.WriteLine(i);
}

这是你想要的吗?就我个人而言,我通常会尝试来避免这种情况-我发现不需要新变量的循环是非常不寻常的。

使用"for"的第一部分为空:

int i;
for (; i<10; i++)
{
    Console.Writeline(i);
}

还可以在循环的第一部分将变量赋值给自身,如下所示:

int i;
for (i=i; i<10; i++)
{
    Console.Writeline(i);
}

我发现它比留下循环的第一部分空白稍微清晰一些,但是Visual Studio会给你一个警告"对同一变量进行赋值;你是想把它分配给别的东西吗?"