在C#中每行读取一个字符串行

fri*_*iwi 12 c# string

可能重复:
在.net中的换行符上拆分字符串的最简单方法?

我试图读出并解释每行的字符串行.我看了一下StringReader类,但是当我在最后一行时,我需要找出它.这是我想要完成的一些伪代码:

while (!stringReaderObject.atEndOfStream()) {
    interpret(stringReaderObject.readLine());
}
Run Code Online (Sandbox Code Playgroud)

有人知道怎么做吗?

谢谢!

伊凡

Kla*_*sen 54

如果您从文件中读取它,则更容易做到:

foreach(var myString in File.ReadAllLines(pathToFile))
    interpret(myString);
Run Code Online (Sandbox Code Playgroud)

如果从其他地方(Web服务类等)获取字符串,则分割字符串更简单:

foreach(var myString in entireString.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries))
    interpret(myString);
Run Code Online (Sandbox Code Playgroud)

  • 值得一提的是`File.ReadLines`(.Net 4.0),它返回一个`IEnumerable <string>`,这样你在读取文件时就会得到一行,这在两个方面更好:1.你没有整个行数组记忆,如果你不需要它.2.`ReadAllLines`在你得到一行之前读取整个文件,其中`ReadLines`会在读取后立即给你第一行.(反应更快).因为他在解释它的每一行上调用一个方法,所以他恰当地想要`ReadLines`而不是`ReadAllLines`. (2认同)

SLa*_*aks 5

像这样:

string line;
while (null != (line = reader.ReadLine()) {
    Process(line);
}
Run Code Online (Sandbox Code Playgroud)

  • @Jason - 不,不是。它简洁且完全可读。你承担单一责任太过分了。 (3认同)
  • @Jason - 不是真的。这也是我见过的每个示例中的规范使用模式。 (2认同)