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 중국어 웹사이트의 기타 관련 기사를 참조하세요!