Tag: ienumerable ienumerator textreader

为什么IEumerator 会影响IEnumerable 的状态,即使枚举器从未到达终点?

我很好奇为什么以下内容在“最后”赋值时抛出错误消息(文本阅读器关闭exception): IEnumerable textRows = File.ReadLines(sourceTextFileName); IEnumerator textEnumerator = textRows.GetEnumerator(); string first = textRows.First(); string last = textRows.Last(); 但是以下执行正常: IEnumerable textRows = File.ReadLines(sourceTextFileName); string first = textRows.First(); string last = textRows.Last(); IEnumerator textEnumerator = textRows.GetEnumerator(); 不同行为的原因是什么?