LINQ를 사용하여 C#에서 파일을 한 줄씩 읽기
텍스트 파일 작업을 할 때 각 줄을 개별적으로 처리해야 하는 경우가 많습니다. C#에서는 StreamReader를 사용하고 각 줄을 수동으로 읽는 등 이를 달성할 수 있는 여러 가지 방법을 제공합니다.
그러나 효율성과 가독성 향상을 위해 성능 저하 없이 LINQ(Language INtegrated Query)를 활용할 수 있습니다. LINQ는 데이터 작업을 위해 더욱 간결하고 표현력이 풍부한 구문을 제공합니다.
한 줄씩 읽어야 하는 두 가지 예제 시나리오를 고려해보세요.
첫 번째 예:
using (var file = System.IO.File.OpenText(_LstFilename)) { while (!file.EndOfStream) { String line = file.ReadLine(); // Process line } }
두 번째 예:
using (var file = System.IO.File.OpenText(datFile)) { Regex nameRegex = new Regex("IDENTIFY (.*)"); while (!file.EndOfStream) { String line = file.ReadLine(); // Process line } }
LINQ 기반 접근 방식:
LINQ로 파일을 한 줄씩 읽으려면 반복기 블록을 사용하여 사용자 정의를 정의할 수 있습니다. 열거 가능 시퀀스:
static IEnumerable<string> ReadFrom(string file) { string line; using (var reader = File.OpenText(file)) { while ((line = reader.ReadLine()) != null) { yield return line; } } }
이 메서드는 느리게 실행되는 IEnumerable 개체를 반환합니다. 전체 파일을 메모리에 버퍼링하지 않고 요청된 대로 각 줄을 평가합니다.
그런 다음 LINQ 쿼리를 사용하여 줄을 처리할 수 있습니다.
var lines = ReadFrom(path); // Process lines using LINQ
LINQ를 사용하면 필터링을 적용할 수 있습니다. 순서 및 기타 작업을 줄 순서에 맞춰 코드를 더 효율적이고 읽기 쉽게 만듭니다. OrderBy 또는 GroupBy와 같은 작업이 사용되는 경우 LINQ는 데이터를 버퍼링해야 할 수 있으며 이로 인해 성능에 영향을 미칠 수 있습니다.
위 내용은 LINQ는 C#에서 줄별 파일 읽기를 어떻게 향상시킬 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!