并将这些行添加到列表框。 (Windows窗体)

我会用:

String file_name = @"x:\....";
int first_line = 24536;
int last_line = 25536;

for ( int i = first_line; i <= last_line; i++)
{
  this.listBox.Items.Add(File.ReadLines(this.file_name).ElementAt(i));
}


但这需要大量时间来加载1000条线路。

如何才能更有效(更快)地完成此任务?

最佳答案

当前,您每次都调用ElementAt-这意味着从头开始为每个新行读取文件。

尝试这个:

string[] lines = File.ReadLines(fileName)
                     .Skip(firstLine - 1) // Assuming 1-based line numbers
                     .Take(lastLine - firstLine)
                     .ToArray();
listBox.Items.AddRange(lines);


(请注意,我已从您的变量名中删除了非常规下划线。)

关于c# - 如何从大文件从特定行读取到特定行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11645547/

10-11 08:18