>백엔드 개발 >C++ >LINQ는 C#에서 줄별 파일 읽기를 어떻게 향상시킬 수 있습니까?

LINQ는 C#에서 줄별 파일 읽기를 어떻게 향상시킬 수 있습니까?

DDD
DDD원래의
2025-01-01 07:25:10833검색

How Can LINQ Improve Line-by-Line File Reading in C#?

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.