C# ファイル読み取りパフォーマンス: File.ReadLines() と File.ReadAllLines() の比較
C# の System.IO
名前空間では、File.ReadLines()
と File.ReadAllLines()
の両方がテキスト ファイルを読み取るための一般的なメソッドです。どちらも文字列の配列を返しますが、特に大きなファイルを扱う場合、パフォーマンスの点で大きな違いがあります。
File.ReadLines()
File.ReadLines()
は IEnumerable<string>
を返し、遅延読み込みをサポートします。これは、ファイル全体を一度に読み取るのではなく、1 行ずつ繰り返し読み取ることを意味します。大きなファイルの場合、このアプローチの利点は、メモリのオーバーヘッドが軽減され、ファイル全体をメモリにロードすることで発生する可能性のあるパフォーマンスのボトルネックが回避されることです。
File.ReadAllLines()
File.ReadAllLines()
は、まずファイルの内容全体をメモリに読み取り、次に文字列配列を返します。この方法は、ファイルが小さい場合、またはファイルの内容全体をすぐに取得する必要がある場合に、より効率的です。ただし、大きなファイルの場合は、パフォーマンスに大きな影響を与える可能性があり、メモリ不足により例外がスローされる場合もあります。
パフォーマンスの比較
次のコード例は、両方のメソッドの使用方法を示しています。
<code class="language-csharp">string[] lines1 = File.ReadAllLines("C:\mytxt.txt"); foreach (var line in File.ReadLines("C:\mytxt.txt")) { // 处理每一行 }</code>
概要
一般に、File.ReadLines()
は、大きなファイルの読み取りまたはファイルの一部のみの処理に適しています。 File.ReadAllLines()
は、小さなファイルを読み取る場合や、ファイルの内容全体をすぐに取得する必要がある場合に適しています。どの方法を選択するかは、ファイルのサイズと特定のアプリケーション シナリオによって異なります。 大きなファイルを処理する場合、File.ReadLines()
の遅延読み込みメカニズムによりパフォーマンスが効果的に向上し、メモリ オーバーフロー エラーを回避できます。
以上がFile.ReadLines() と File.ReadAllLines(): ファイル読み取りパフォーマンスを最適化するにはどちらの方法を選択する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。