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

时间:2011-10-27 08:43:24

标签: c#

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

目前我正在使用

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#给我一个优雅的方式吗?

3 个答案:

答案 0 :(得分:9)

好吧,你没有拥有在循环的第一部分内有任何东西:

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

这就是你要找的东西吗?我个人通常尝试以避免这种情况 - 我发现想要一个没有新变量的循环是非常不寻常的。

答案 1 :(得分:3)

只需使用“for”的空白第一部分:

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

答案 2 :(得分:0)

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

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

我发现它比将循环的第一部分留空更清晰,但是Visual Studio会给你一个警告&#34;对同一个变量做出的赋值;你的意思是把它分配给其他东西吗?&#34;