并将这些行添加到ListBox。 (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行。
如何更有效(更快)地完成此操作?
答案 0 :(得分:8)
目前,您每次都在调用ElementAt
- 这意味着每个新行都会从头开始 。
试试这个:
string[] lines = File.ReadLines(fileName)
.Skip(firstLine - 1) // Assuming 1-based line numbers
.Take(lastLine - firstLine)
.ToArray();
listBox.Items.AddRange(lines);
(请注意,我已从变量名中删除了非常规下划线。)
答案 1 :(得分:1)
您可以传递列表中的文件行,然后按索引ID
调用它IEnumerable<string> = File.ReadLines(@"c:\test.txt")
.Take(NumberOfLines);