c#表达式和循环之美

标签 c# while-loop expression

这可能是相当主观的,但是当控制变量在循环中更新时,人们通常如何在 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/

相关文章:

c# - 反序列化使用 TypeNameHandling.All 序列化的字符串

c# - 重命名特定类的库

c# - 在 C# 中使用带有整数的 Math.Ceiling

java - while 循环正在因未知原因更改预期值

c# - 为什么从 Expression<Func<>> 创建的 Func<> 比直接声明的 Func<> 慢?

c# - 通用 C# 类 : Set "Generic" Property

java - 为什么这个 while 循环有效?

python - 使用 while 循环检查小数点

ruby 正则表达式 : match any . css 文件名不以下划线开头,在任何字符串之前

sql - 如何在 SQL 查询中提取重复的表达式?列别名似乎不是票