我有一个字符串列表,从文件中读取并进行过滤,这一切都是使用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);
}
}
Dispose
IEnumerator<string>。 - dtb_enumerator
比在需要时让垃圾收集器处理更好?内存消耗? - Simon Belanger