0

「閉じたテキストリーダーから読み取ることができません」という例外に問題があります。ファイルからデータを取得し、それを使って面白いことをして、すべてのタイムスパンを取得するプログラムがあります。

最初に 1 つの関数で、データをロードしています。

IEnumerable<string> SomeVariable;
SomeVariable = (from _Something in File.ReadLines(@"file location") select _Something.Split(' ')[1] );

2 番目の関数では、1 回実行します。

foreach (var _Something in SomeVariable)
{
    SomeList.Add(_Something);
}

3番目の関数で、もう一度実行しようとすると、次のようになります。

foreach (var _Something in SomeVariable)
{
    SomeOtherList.Add(_Something);
}

Exception: Cannot read from a closed textreader が発生します。1 つの列挙の後、SomeVariable を反復処理できなくなったようです。

それは IEnumerable 自体の問題ですか、それとも File.ReadLines 関数と関係がありますか? ファイルを反復処理するたびにファイルからデータをリロードするのは非常にばかげていると思います...

PS。私は調査を行い、解決策の1つは両方のアクションを1つの機能に入れることであることを認識していますが、残念ながらこれは大学のプログラムであり、この方法で作成する必要があります-両方のアクションの別々のタイムスパンを取得する必要があります.

4

2 に答える 2