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

时间:2010-10-21 16:41:12

标签: c# string

  

可能重复:
  Easiest way to split a string on newlines in .net?

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

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

有人知道怎么做吗?

谢谢!

伊凡

6 个答案:

答案 0 :(得分:51)

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

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

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

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

答案 1 :(得分:4)

执行readLine时检查null - 请参阅docs

答案 2 :(得分:3)

StreamReader类具有EndOfStream属性。你有没有考虑过使用它?

答案 3 :(得分:3)

我不确定你在哪里读书。如果是来自控制台,您可以检查输入字符串的结尾,如“退出”以表示输入结束

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

答案 4 :(得分:3)

像这样:

string line;
while (null != (line = reader.ReadLine()) {
    Process(line);
}

答案 5 :(得分:1)

解雇是正确的:

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

while (!reader.EndOfStream) 
{ 
    string line = reader.ReadLine(); 
}