这可能是相当主观的,但是当控制变量在循环中更新时,人们通常如何在 C# 中布置他们的循环控制?我的 Nerd 不喜欢涉及的单独声明和重复。例如。
string line = reader.ReadLine();
while (line != null)
{
//do something with line
line = reader.ReadLine();
}
我的 C 程序员想把它改成
while (string line = reader.ReadLine() != null)
{
//do something with line
}
但 C# 的表达式似乎不是这样工作的:(
最佳答案
选项:
1) 在循环中声明变量,但在条件中赋值:
string line;
while ((line = reader.ReadLine()) != null)
{
}
2) 改为使用 for 循环:
for (string line = reader.ReadLine(); line != null; line = reader.ReadLine())
{
}
3) 创建一个扩展方法将阅读器变成一个 IEnumerable<String>
然后使用:
foreach (string line in reader.ReadLines())
{
}
我个人尽可能喜欢最后一种形式——否则我会使用第一种形式。
关于c#表达式和循环之美,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8258315/