我有一些具有特定结构的文本文件.在每行的开头我都有一些单词,例如"true"或"false".像这样的东西:
$True 3 5 1 8
$False 12 5 a z
$False 1,5,7
$True 123
$True 7ao
$False 198
Run Code Online (Sandbox Code Playgroud)
我需要得到一个数组,列表或类似的东西:
$False 12 5 a z
$False 1,5,7
$False 198
Run Code Online (Sandbox Code Playgroud)
行数是未知的,我试图找到只读取具有特定起始字(False)的行的最快方法.我尝试使用该string.Split方法解析,然后添加到列表if word == word,但问题在于速度,如果我有5-6000行这会变慢.这样的事情有更快的方法吗?
这应该足够快:
var filteredLines =
File.ReadLines("path")
.Where(line => line.StartsWith(word))
.ToList()
Run Code Online (Sandbox Code Playgroud)
becase的ReadLines通过线文件中的行迭代,不加载整成存储器(从MSDN):
ReadLines和ReadAllLines方法的不同之处如下:使用ReadLines时,可以在返回整个集合之前开始枚举字符串集合; 当您使用ReadAllLines时,必须等待返回整个字符串数组才能访问该数组.因此,当您使用非常大的文件时,ReadLines可以更高效.
| 归档时间: |
|
| 查看次数: |
1554 次 |
| 最近记录: |