Чтение файла построчно в C #

Я пытаюсь прочитать некоторые текстовые файлы, где каждая строка должна быть обработана. На данный момент я просто использую StreamReader, а затем читаю каждую строку в отдельности.

Мне интересно, есть ли более эффективный способ (с точки зрения LoC и читабельности) сделать это с помощью LINQ без ущерба для операционной эффективности. Примеры, которые я видел, включают загрузку всего файла в память, а затем его обработку. В этом случае, однако, я неНе думаю, что это будет очень эффективно. В первом примере файлы могут иметь размер около 50 КБ, а во втором примере не все строки файла должны быть прочитаны (размеры обычно < 10k).

Вы можете утверждать, что в настоящее время это неЭто действительно важно для этих небольших файлов, однако я считаю, что подобный подход приводит к неэффективному коду.

Первый пример:

// Open file
using(var file = System.IO.File.OpenText(_LstFilename))
{
    // Read file
    while (!file.EndOfStream)
    {
        String line = file.ReadLine();

        // Ignore empty lines
        if (line.Length > 0)
        {
            // Create addon
            T addon = new T();
            addon.Load(line, _BaseDir);

            // Add to collection
            collection.Add(addon);
        }
    }
}

Второй пример:

// Open file
using (var file = System.IO.File.OpenText(datFile))
{
    // Compile regexs
    Regex nameRegex = new Regex("IDENTIFY (.*)");

    while (!file.EndOfStream)
    {
        String line = file.ReadLine();

        // Check name
        Match m = nameRegex.Match(line);
        if (m.Success)
        {
            _Name = m.Groups[1].Value;

            // Remove me when other values are read
            break;
        }
    }
}

Ответы на вопрос(4)

Ваш ответ на вопрос