我遇到了“无法从关闭的文本阅读器中读取”异常的问题。我有一个程序应该从文件中获取数据,然后用它做一些有趣的事情并获取所有内容的时间跨度。
首先在一个函数中,我正在加载数据:
IEnumerable<string> SomeVariable;
SomeVariable = (from _Something in File.ReadLines(@"file location") select _Something.Split(' ')[1] );
在第二个函数中,我运行了一次:
foreach (var _Something in SomeVariable)
{
SomeList.Add(_Something);
}
在第三个函数中,当我尝试再次运行它时:
foreach (var _Something in SomeVariable)
{
SomeOtherList.Add(_Something);
}
我得到异常:无法从关闭的文本阅读器中读取。看起来在一次枚举之后,不再可能遍历 SomeVariable。
这是 IEnumerable 本身的问题,还是与 File.ReadLines 函数有关?每次我想遍历它时,我都会发现从文件中重新加载数据非常愚蠢......
PS。我做了研究,我知道解决方案之一是将两个动作放在一个函数中,但不幸的是这是大学课程,我必须以这种方式编写它 - 我必须获得两个动作的不同时间跨度。