c#表达和循环美

Gaz*_*yer 2 c# expression while-loop

这可能是非常主观的,但是当控制变量在循环中更新时,人们通常如何在C#中布置它们的循环控制?我内心的学究者不喜欢单独的声明和重复.例如.

string line = reader.ReadLine();
while (line != null)
{
    //do something with line

    line = reader.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

我的C编码器想要改变它

while (string line = reader.ReadLine() != null)
{
    //do something with line
}
Run Code Online (Sandbox Code Playgroud)

但是C#的表达似乎没有这样的方式:(

Jon*_*eet 7

选项:

1)将变量声明为循环,但在条件中赋值:

string line;
while ((line = reader.ReadLine()) != null)
{
}
Run Code Online (Sandbox Code Playgroud)

2)改为使用for循环:

for (string line = reader.ReadLine(); line != null; line = reader.ReadLine())
{
}
Run Code Online (Sandbox Code Playgroud)

3)创建一个扩展方法,将读者变成一个IEnumerable<String>然后使用:

foreach (string line in reader.ReadLines())
{
}
Run Code Online (Sandbox Code Playgroud)

就个人而言,我喜欢最后一个 - 否则我会使用第一个表格.