11

如何遍历TextReader source中的行?

我试过

foreach (var line in source)

但是得到了错误

foreach 语句无法对“System.IO.TextReader”类型的变量进行操作,因为“System.IO.TextReader”不包含“GetEnumerator”的公共定义

4

3 回答 3

41
string line;
while ((line = myTextReader.ReadLine()) != null)
{
    DoSomethingWith(line);
}
于 2012-10-02T09:13:47.723 回答
18

您可以使用File.ReadLineswhich is deferred execution方法,然后通过行循环:

foreach (var line in File.ReadLines("test.txt"))
{
}

更多信息:

http://msdn.microsoft.com/en-us/library/dd383503.aspx

于 2012-10-02T09:10:47.703 回答
3

您可以尝试使用此代码 - 基于ReadLine method

        string line = null;
        System.IO.TextReader readFile = new StreamReader("...."); //Adjust your path
        while (true)
        {
            line = readFile.ReadLine();
            if (line == null)
            {
                break;    
            }
            MessageBox.Show (line);
        }
        readFile.Close();
        readFile = null;
于 2012-10-02T09:10:56.973 回答