读取文本文件时跳过数据

时间:2012-09-21 08:53:39

标签: c# io file-read

我有一个文本文件...存储数据,如..

  

E:0

     

S:0

     

R:0

     

G:0

     

E:1

     

S:1

     

R:1

     

G:1

等到50岁。我可以通过

阅读
StramReader.ReadLine();

但我如何阅读第1行

  

E:0

并跳到下一个E :,没有介入事物之间

2 个答案:

答案 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();