> 백엔드 개발 > C++ > LINQ는 어떻게 C#에서 파일을 한 줄씩 효율적으로 읽을 수 있습니까?

LINQ는 어떻게 C#에서 파일을 한 줄씩 효율적으로 읽을 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2025-01-01 12:07:10
원래의
524명이 탐색했습니다.

How Can LINQ Efficiently Read a File Line by Line in C#?

LINQ를 사용하여 C#에서 파일을 한 줄씩 읽기

C#에서 텍스트 파일을 다룰 때는 각 줄을 효율적으로 읽는 것이 중요합니다. StreamReader를 사용하고 행을 개별적으로 반복하는 것이 일반적인 접근 방식이지만 LINQ를 사용하여 보다 효율적인 방법을 탐색하는 것은 가치 있는 노력입니다.

효율적인 LINQ 구현

이러한 효율성을 달성하려면 , LINQ 기반 라인 판독기는 반복기 블록을 사용하여 구현할 수 있습니다. 이 접근 방식은 전체 파일을 메모리에 로드하는 것을 방지하여 대용량 파일의 운영 효율성을 보장합니다.

static IEnumerable<T> ReadFrom(string file) {
    string line;
    using (var reader = File.OpenText(file)) {
        while ((line = reader.ReadLine()) != null) {
            T newRecord = /* parse line */
            yield return newRecord;
        }
    }
}
로그인 후 복사

가독성을 위한 향상된 LINQ 구문

가독성을 높이기 위해 간결한 구문을 사용할 수 있습니다.

static IEnumerable<string> ReadFrom(string file) {
    string line;
    using (var reader = File.OpenText(file)) {
        while ((line = reader.ReadLine()) != null) {
            yield return line;
        }
    }
}
...
var typedSequence = from line in ReadFrom(path)
                    let record = ParseLine(line)
                    where record.Active // for example
                    select record.Key;  
로그인 후 복사

이 버전은 지연 평가 시퀀스를 제공합니다. 버퍼링을 통해 Where 및 OrderBy와 같은 후속 작업을 효율적으로 적용할 수 있습니다.

추가 고려 사항

OrderBy 또는 표준 GroupBy를 사용하면 데이터가 메모리에 버퍼링됩니다. 그룹화 및 집계 작업의 경우, PushLINQ는 버퍼링 페널티 없이 대규모 데이터 세트를 효율적으로 처리할 수 있는 특수 기술을 제공합니다.

위 내용은 LINQ는 어떻게 C#에서 파일을 한 줄씩 효율적으로 읽을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿