我有一个文本文件......它存储数据,如......
E:0
S:0
R:0
G:0
E:1
小号:1
R:1
G:1
依此类推,直到 50 岁。我可以通过
StramReader.ReadLine();
但我怎么能读第一行
E:0
并跳到下一个 E: ,而不是介于两者之间
有这种方法。但这将遍历每一行并选择包含 E 的行
var linesContainsE = File.ReadAllLines(filename)
.Where(line => line.Contains("E"))
.ToList();
(使用命名空间 System.Linq 和 System.IO)
有关来自 msdn 的 File.ReadAllLines 的更多信息:http: //msdn.microsoft.com/en-us/library/system.io.file.readalllines.aspx
强烈建议不要使用将所有行加载到内存中的 ReadAllLines。如果您有一个非常大的文件怎么办,使用 ReadAllLines 将没有效率。
另一种选择是ReadLines,它是延迟执行:
ReadLines 和 ReadAllLines 方法的区别如下: 使用 ReadLines 时,可以在返回整个集合之前开始枚举字符串集合;使用 ReadAllLines 时,必须等待返回整个字符串数组才能访问该数组。因此,当您处理非常大的文件时,ReadLines 会更有效率。
此外,不要使用 ,而是Contains
使用StartWith
:
var linesContainsE = File.ReadLines(filename)
.Where(line => line.StartWith("E"))
.ToList();