텍스트 파일 작업을 할 때 각 줄을 개별적으로 처리해야 하는 경우가 많습니다. C#은 이 작업에 대해 여러 접근 방식을 제공하지만 LINQ는 운영 효율성을 저하시키지 않으면서 더욱 간결하고 효율적인 솔루션을 제공할 수 있습니다.
클래식 접근 방식에는 StreamReader를 활용하는 것이 포함됩니다. 그러나 LINQ는 보다 유연하고 읽기 쉬운 코드를 허용하는 강력한 대안을 제공합니다. 반복자를 사용하면 일련의 줄을 생성한 후 스트리밍 방식으로 처리할 수 있으므로 전체 파일을 메모리에 로드할 필요가 없습니다.
다음은 반복자 기반 LINQ 식의 예입니다. :
static IEnumerable<string> ReadFrom(string file) { string line; using(var reader = File.OpenText(file)) { while((line = reader.ReadLine()) != null) { yield return line; } } }
이 함수는 지정된 파일에서 읽은 일련의 행을 반환합니다. 각 줄은 읽은 대로 생성되므로 지연 평가 및 효율적인 처리가 가능합니다.
줄을 추가로 처리하려면 Where, Select 및 Aggregate와 같은 LINQ 메서드를 사용하여 필터링, 매핑 및 집계를 수행할 수 있습니다. 명시적인 반복이 필요 없는 작업. 예:
var typedSequence = from line in ReadFrom(path) let record = ParseLine(line) where record.Active // for example select record.Key;
이 예에서는 ReadFrom 함수를 사용하여 일련의 행을 생성합니다. 그런 다음 각 라인은 ParseLine 함수를 사용하여 데이터 레코드로 구문 분석됩니다. Where 절은 비활성 레코드를 필터링하고 Select 절은 나머지 각 레코드에서 키 값을 투영합니다.
요약하자면 LINQ와 반복기를 사용하면 효율적이고 유지 관리가 가능한 한 줄씩 파일 읽기 코드를 만들 수 있습니다. 기음#. 반복기의 기능을 활용하면 전체 파일을 메모리에 로드하는 오버헤드를 방지하고 파일 처리 프로세스를 간소화할 수 있습니다.
위 내용은 LINQ와 반복자는 C#에서 파일을 한 줄씩 효율적으로 읽을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!