C# の File.ReadLines()
メソッドと File.ReadAllLines()
メソッドの比較: テキスト ファイルを読み取るときにどちらを使用するか?
C# でテキスト ファイルを処理する場合、File.ReadLines()
と File.ReadAllLines()
は、ファイルの内容を読み取るためによく使用される 2 つの方法です。どちらも文字列の配列を返します。配列内の各要素はファイルの行を表しますが、パフォーマンスには大きな違いがあります。
File.ReadAllLines()
File.ReadAllLines()
メソッドは、ファイル全体を一度にメモリに読み取り、文字列配列を返します。この方法は、小規模または中規模のファイルの場合は非常に効率的ですが、大きなファイルの場合は効率が大幅に低下します。
File.ReadLines()
対照的に、File.ReadLines()
メソッドは、ファイルの遅延読み込みをサポートする IEnumerable<string>
オブジェクトを返します。これは、ファイル全体を一度にメモリにロードしないことを意味し、特にパフォーマンスが重要なシナリオで大きなファイルを扱う場合に適した選択肢となります。
パフォーマンスの違い
前述したように、大きなファイルの場合、File.ReadLines()
は File.ReadAllLines()
よりもはるかに優れたパフォーマンスを発揮します。これは、File.ReadLines()
がファイルをチャンクで読み取り、行を増分的に返し、データをすぐに処理できるようにするためです。一方、File.ReadAllLines()
は、配列を返す前にファイル全体がメモリにロードされるまで待つ必要があるため、特に大きなファイルを扱う場合、パフォーマンスのボトルネックやメモリ使用量の増加につながる可能性があります。
使用例
File.ReadAllLines()
の使用例:
<code class="language-csharp">string[] lines = File.ReadAllLines("C:\mytxt.txt"); foreach (string line in lines) { // 处理每一行 }</code>
File.ReadLines()
の使用例:
<code class="language-csharp">foreach (string line in File.ReadLines("C:\mytxt.txt")) { // 处理每一行(按读取顺序) }</code>
概要
小さなファイルの場合、File.ReadAllLines()
を使用する場合と File.ReadLines()
を使用する場合のパフォーマンスの違いは無視できます。ただし、大きなファイルを扱う場合は、遅延読み込みメカニズムにより、最適なパフォーマンスとメモリ使用効率を確保できる File.ReadLines()
の方が良い選択肢になります。
以上が「File.ReadLines() と File.ReadAllLines(): C# でテキスト ファイルを読み取る場合、どちらを使用する必要がありますか?」の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。