相关疑难解决方法(0)

在C#中逐行读取文件

我正在尝试阅读一些文本文件,其中每行都需要处理.目前我只使用StreamReader,然后单独读取每一行.

我想知道是否有更有效的方法(在LoC和可读性方面)使用LINQ来做到这一点而不影响运营效率.我看到的例子涉及将整个文件加载到内存中,然后处理它.在这种情况下,我不相信这会非常有效.在第一个示例中,文件可以达到大约50k,而在第二个示例中,不需要读取文件的所有行(大小通常小于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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

第二个例子:

// 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 …
Run Code Online (Sandbox Code Playgroud)

c# linq line

56
推荐指数
2
解决办法
6万
查看次数

标签 统计

c# ×1

line ×1

linq ×1