我有一个从文件中读取并过滤的字符串列表,所有这些都是使用 yield 机制发生的,因此它是惰性的。然后我需要将它传递给一个采用 TextReader 的方法。
这种方法有什么问题吗?它似乎有效,但想知道我错过了一些东西。
public class EnumerableReader : TextReader
{
private readonly IEnumerator<string> _enumerator;
public EnumerableReader(IEnumerable<string> lines)
{
_enumerator = lines.GetEnumerator();
}
public override string ReadLine()
{
return _enumerator.MoveNext() ? _enumerator.Current : null;
}
protected override void Dispose(bool disposing)
{
_enumerator.Dispose();
base.Dispose(disposing);
}
}