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

Reading a string line per line in C#

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Easiest way to split a string on newlines in .net?

我试图读出并解释每行的一个字符串行。我看了一下StringReader课程,但我需要知道我什么时候上最后一行。下面是我要完成的一些伪代码:

1
2
3
while (!stringReaderObject.atEndOfStream()) {
    interpret(stringReaderObject.readLine());
}

有人知道怎么做吗?

谢谢!

伊凡


如果您是从文件中读取它,那么只需执行以下操作就更容易了:

1
2
foreach(var myString in File.ReadAllLines(pathToFile))
    interpret(myString);

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

1
2
foreach(var myString in entireString.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries))
    interpret(myString);


读取行时检查是否为空-请参阅文档。


这样地:

1
2
3
4
string line;
while (null != (line = reader.ReadLine()) {
    Process(line);
}


我不知道你在哪里读书。如果它来自控制台,您可以检查输入结束字符串,如"quit",以表示输入结束。

1
2
3
4
String input;
while((input = reader.readLine()) !="quit"){
   // do something
}

streamreader类具有endofstream属性。你研究过使用它吗?


拒绝是正确的:

http://msdn.microsoft.com/en-us/library/system.io.streamreader.endofstream.aspx

1
2
3
4
while (!reader.EndOfStream)
{
    string line = reader.ReadLine();
}