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