class LineReader
{
public static IEnumerable<string> ReadLines(string filename)
{
using (TextReader reader = File.OpenText(filename))
{
string line;
while ((line = reader.ReadLine()) != null)
{
yield return line;
}// yield中断执行while, in 返回的是这个位置
}
}
static void Main()
{
foreach (string line in ReadLines("../../LineReader.cs")) //一行一行代码读 line就是内容 in其实是执行MoveNext
{
Console.WriteLine(line); //一次读取一行,结束关闭阅读器
}
}
}
输出
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
namespace Chapter06
{
[Description("Listing 6.8")]
class LineReader
{
public static IEnumerable<string> ReadLines(string filename)
{
using (TextReader reader = File.OpenText(filename))
{
string line;
while ((line = reader.ReadLine()) != null)
{
yield return line;
}
}
}
static void Main()
{
foreach (string line in ReadLines("../../LineReader.cs"))
{
Console.WriteLine(line);
}
}
}
}