0

我正在寻找一种可以读取文本文件的方法,一次一个单词,直到文件结束。这是我目前的代码,但它只从文件中读取一个单词,没有更多。如何处理整个文件?

 var ResourceStream = Application.GetResourceStream(new Uri("test.txt",UriKind.Relative));
            using (Stream myFileStream = ResourceStream.Stream)
            {
                string s = "";
                StreamReader myStreamReader = new StreamReader(myFileStream);
                s = myStreamReader.ReadToEnd();
                s = s.Trim();
                //tlbwords.Text = s;
                char[] delimiters = { '\n', '\r' };
                string[] words = s.Split(delimiters);
                tlbwords.Text = words[0];
           }
        }
    }
}
4

3 回答 3

1

使用 LINQ 获取所有单词:

var words = File
   .ReadAllLines(fileName)
   .SelectMany(line -> line.Split(' '))
   .Where(word => !string.IsNullOrWhiteSpace())
   .ToArray();

使用 Julián Urbano 的建议进行编辑:

var words = File
   .ReadAllLines(fileName)
   .SelectMany(line -> line.Split(' ',  StringSplitOptions.RemoveEmptyEntries))
   .ToArray();
于 2013-06-19T01:20:41.307 回答
1

您可以使用String[] lines = File.ReadAllLines(fileName);然后分隔单词。

于 2013-06-19T00:52:56.863 回答
0

为什么不使用:

textbox1.Text = File.ReadAllText(filename);

并将 Multiline 设置为 true

于 2013-06-19T01:21:33.277 回答