C# ファイル読み取りパフォーマンスの最適化: File.ReadLines() と File.ReadAllLines() の比較
効率的なファイル処理はプログラミングにおいて非常に重要です。 C# では、File.ReadLines()
メソッドと File.ReadAllLines()
メソッドの両方でファイルの内容を文字列配列に読み取ることができますが、大きなファイルを処理する場合のパフォーマンスは大きく異なります。
File.ReadLines()
File.ReadLines()
は、遅延ロードされたコレクションである IEnumerable<string>
を返します。これは、ファイルを 1 行ずつ読み取ることを意味し、大きなファイルを扱う場合の効率が向上します。 foreach
を使用すると、ファイル全体をメモリにロードせずに各行をループできます。
File.ReadAllLines()
File.ReadAllLines()
は、ファイル全体を一度に読み取り、string[]
の配列を返します。大きなファイルの場合、この方法はファイル全体をメモリにロードする必要があるため効率が低く、パフォーマンスのボトルネックやメモリ オーバーフローを引き起こす可能性があります。
パフォーマンスの比較
次の表は、File.ReadLines()
と File.ReadAllLines()
の主なパフォーマンスの違いをまとめたものです。
方法 | 读取方式 | 大型文件性能 |
---|---|---|
`File.ReadLines()` | 逐行读取 | 更高效 |
`File.ReadAllLines()` | 一次性读取 | 效率较低 |
例
次のコード例は、 を使用して大きなテキスト ファイルを処理する方法と、File.ReadLines()
を使用して小さなテキスト ファイルを処理する方法を示しています。
File.ReadAllLines()
<code class="language-csharp">// 处理大型文件 string[] lines = File.ReadLines("large.txt").Where(x => x.Contains("keyword")).ToArray(); // 处理小型文件 string[] lines = File.ReadAllLines("small.txt");</code>
大きなファイルの場合は、ファイルを段階的に読み取ることでパフォーマンスが向上するため、
を選択することをお勧めします。 パフォーマンスの違いがそれほど重大ではない、小さなファイルでは引き続き機能します。 File.ReadLines()
以上がFile.ReadLines() と File.ReadAllLines(): 最適なパフォーマンスを得るにはどちらを選択すべきですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。