System.IO の File.ReadLines() と File.ReadAllLines() のパフォーマンスの違い
File.ReadLines()
と File.ReadAllLines()
はどちらも System.IO
名前空間内のメソッドであり、ファイル データを文字列配列に読み取るために使用されます。ただし、性能や用途が異なります。
File.ReadAllLines()
File.ReadAllLines()
ファイル全体を一度にメモリに読み取り、配列として保存します。この方法は、より高速な処理が実現されるため、ファイルが小さい場合により効率的です。ただし、ファイルが大きい場合は、処理を開始する前にファイル全体をメモリにロードする必要があるため、パフォーマンスの問題が発生する可能性があります。
File.ReadLines()
File.ReadLines()
は IEnumerable<string>
を返します。これは、ファイルの内容を遅延ロードする方法です。ファイル全体をメモリにロードするのではなく、ファイルを 1 行ずつ読み取り、必要に応じて各行を返します。大きなファイルの場合は、ファイル全体をメモリにロードする必要がなくなるため、このアプローチが推奨されます。
パフォーマンスの違いの概要
次の表は、File.ReadLines()
と File.ReadAllLines()
のパフォーマンスの違いをまとめたものです。
方法 | 性能 | 内存使用 |
---|---|---|
File.ReadLines() | 大型文件更佳 | 更低 |
File.ReadAllLines() | 小型文件更佳 | 更高 |
使用例
を使用してファイルを 1 行ずつ読み取る方法は次のとおりです。 File.ReadLines()
<code class="language-csharp">foreach (var line in File.ReadLines("C:\mytxt.txt")) { // 处理每一行... }</code>
を使用してファイル全体を配列としてメモリにロードします。 File.ReadAllLines()
<code class="language-csharp">string[] lines = File.ReadAllLines("C:\mytxt.txt");</code>
結論
大きなファイルの場合は、遅延読み込みメカニズムを使用するため、一般に を使用することをお勧めします。小さなファイルの場合は、アプリケーションの特定の要件に応じて、どちらの方法も使用できます。 File.ReadLines()
以上がFile.ReadLines() と File.ReadAllLines(): ファイルの読み取りパフォーマンスに優れているのはどちらのメソッドですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。