ホームページ > バックエンド開発 > C++ > `File.ReadLines()` と `File.ReadAllLines()`: C# で大きなテキスト ファイルを読み取るにはどちらが最適ですか?

`File.ReadLines()` と `File.ReadAllLines()`: C# で大きなテキスト ファイルを読み取るにはどちらが最適ですか?

Susan Sarandon
リリース: 2025-01-07 21:49:41
オリジナル
924 人が閲覧しました

C# での大きなテキスト ファイルの読み取り: File.ReadLines()File.ReadAllLines()

のパフォーマンスの比較

`File.ReadLines()` vs. `File.ReadAllLines()`: Which is Best for Reading Large Text Files in C#?

File.ReadLines()File.ReadAllLines() はどちらもテキスト ファイルを読み取るための C# のメソッドですが、パフォーマンスは大きく異なります。

File.ReadAllLines()

File.ReadAllLines() は、ファイル全体を一度にメモリに読み取り、文字列配列を返します。この方法は小さなファイルには効率的ですが、大きなファイルには問題があります。ファイル サイズが大きくなると、ファイル全体の読み取りと処理に必要な時間が大幅に増加します。さらに、File.ReadAllLines() は、特にギガバイトサイズのファイルを扱う場合に大量のメモリを消費します。

File.ReadLines()

File.ReadLines() は、遅延読み込みを通じて File.ReadAllLines() の制限を解決します。ファイル全体を一度にメモリに読み取る代わりに、必要に応じてファイルの各行を反復処理できる IEnumerable<string> を返します。このアプローチにより、メモリ使用量が削減され、大きなファイルを処理する際のパフォーマンスが向上します。

パフォーマンスの比較

ベンチマークは、大きなファイルの場合、File.ReadLines()File.ReadAllLines() よりも優れたパフォーマンスを示すことを示しています。この違いは、ファイル サイズが大きくなるほど顕著になります。たとえば、File.ReadAllLines() を使用して 100 MB のファイルを読み取るには数秒かかる場合がありますが、File.ReadLines() は 1 秒未満でタスクを完了できます。

使用例

File.ReadLines() を使用してファイルを読み取ります:

<code class="language-csharp">using System.IO;

string path = "C:\mytxt.txt";

foreach (var line in File.ReadLines(path))
{
    // 处理每一行
}</code>
ログイン後にコピー

File.ReadAllLines() を使用してファイルを読み取ります:

<code class="language-csharp">using System.IO;

string path = "C:\mytxt.txt";

string[] lines = File.ReadAllLines(path);

// 处理所有行</code>
ログイン後にコピー

結論

大きなテキスト ファイルの場合、File.ReadLines()File.ReadAllLines() よりもパフォーマンスに大きな利点があります。遅延読み込みにより、File.ReadLines() はメモリ消費を削減し、効率を犠牲にすることなく処理速度を向上させます。

以上が`File.ReadLines()` と `File.ReadAllLines()`: C# で大きなテキスト ファイルを読み取るにはどちらが最適ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート