0

私は .NET 4.0 に慣れていましたが、.NET 3.5 に戻さなければならない状況に遭遇しました。

私の 4.0 コードでは、これに依存してデータを読み取ります。

var Data = File.ReadLines(FilePath).Select(line => line.Split('\t')).ToArray();

上記は 3.5 では機能しません。「FilePath」でデータを読み取り、データを配列に入れることを可能にする3.5の同等のものを誰かが知っていますか?

3.5 で発生するエラーは、System.IO.File に ReadLines の定義が含まれていないことです。プロジェクトのプロパティを 4.0 のターゲット フレームワークに変更すると、このエラーは表示されません。ターゲット フレームワーク 3.5 を使用すると、再び表示されます。

4

4 に答える 4

6

代わりに使用できますFile.ReadAllLines-これは、ファイル全体をstring[]行ごとに読み取るのではなく、 に読み取りますが、とにかくToArray呼び出しのためにすべてをメモリに読み取るため、File.ReadLines.

于 2013-10-30T15:25:11.920 に答える
4

ReadLines.Net 4+です。ReadAllLines代わりに使用できるはずです。

MSDN ドキュメント:

ReadLines メソッドと ReadAllLines メソッドの違いは次のとおりです。 ReadLines を使用すると、コレクション全体が返される前に文字列のコレクションの列挙を開始できます。ReadAllLines を使用する場合は、配列にアクセスする前に、文字列の配列全体が返されるまで待つ必要があります。したがって、非常に大きなファイルを操作している場合は、ReadLines の方が効率的です。

于 2013-10-30T15:25:49.667 に答える
3

これはうまくいくはずです:

var Data = File.ReadAllLines(FilePath).Select(line => line.Split('\t')).ToArray();

ReadAllLines.NET Framework 3.5 で使用できます。ReadLinesファイルの行を遅延読み取りし、.NET Framework 4.0 以降でのみ使用できますが、とにかく全体を配列に変換しているためReadAllLines、ニーズに合うはずです。

于 2013-10-30T15:25:28.927 に答える
2

ReadLines.NET 4 で追加されました。IEnumerable<string>とにかく全体を使用しているので、ReadAllLines代わりに使用できます。

var Data = File.ReadAllLines(FilePath).Select(line => line.Split('\t')).ToArray();
于 2013-10-30T15:28:01.593 に答える