ホームページ > バックエンド開発 > C++ > C# でファイルを 1 行ずつ読み取るとき、LINQ はどのように効率を向上させることができますか?

C# でファイルを 1 行ずつ読み取るとき、LINQ はどのように効率を向上させることができますか?

Linda Hamilton
リリース: 2025-01-05 01:25:40
オリジナル
350 人が閲覧しました

How Can LINQ Improve Efficiency When Reading Files Line by Line in C#?

LINQ を使用した C# での効率的な行ごとのファイル読み取り

各行を個別に処理する必要があるテキスト ファイルを処理する場合、StreamReader は簡単な解決策。ただし、効率と読みやすさを向上させるために、LINQ はより洗練されたアプローチを提供します。

ファイル全体をメモリに読み込まないようにするために、反復子ブロックの使用を検討してください。

static IEnumerable<SomeType> ReadFrom(string file) {
    string line;
    using(var reader = File.OpenText(file)) {
        while((line = reader.ReadLine()) != null) {
            SomeType newRecord = /* parse line */
            yield return newRecord;
        }
    }
}
ログイン後にコピー

あるいは、より単純な場合は、 version:

static IEnumerable<string> ReadFrom(string file) {
    string line;
    using(var reader = File.OpenText(file)) {
        while((line = reader.ReadLine()) != null) {
            yield return line;
        }
    }
}
ログイン後にコピー

ReadFrom(...) 関数は、データのバッファリングを回避して、遅延評価されたシーケンスを返します。 ReadFrom(...) を他の LINQ 操作 (Where、Select など) と組み合わせることで、操作効率を犠牲にすることなく効率的な行ごとの処理を実現できます。

以上がC# でファイルを 1 行ずつ読み取るとき、LINQ はどのように効率を向上させることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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