我正在尝试使用File.ReadAllLines获得包含每一行的数组。我的文本文件每行包含一个单词,因此数组的每个索引都应包含一个单词,尽管当我运行代码时,它只会打印出第一行。
foreach (string emotion in emotions)
{
var lines = File.ReadAllLines("C:\\Users\\Griffin\\Documents\\C#\\thavma\\thavma\\bin\\Debug\\libraries\\" + emotion + ".lib");
emotiondict.Add(emotion, lines);
foreach (string f in lines)
{
Console.WriteLine(f);
Console.ReadLine();
}
}
在这里供参考的是string []情感:
string[] emotions = new string[]
{ "anger","anticipation","disgust", "fear", "joy", "negative", "positive", "sadness", "surprise", "trust"};
以及我要读取的部分文件示例:
abandoned
abandonment
abhor
abhorrent
abolish
abomination
abuse
accursed
accusation
accused
accuser
...
当我运行代码时,所有显示的都是单词“ abandoned”,而且我不确定自己做错了什么。谢谢!
答案 0 :(得分:11)
您有一个
Console.ReadLine();
在您的循环中。这将“停止”软件并等待用户输入,例如,您可以使用它来获取用户键入的内容。长话短说:如果您运行程序并反复按Enter,它将起作用。我建议将其更改为
foreach (string f in lines)
{
Console.WriteLine(f);
}
Console.ReadLine();
这应该很好
答案 1 :(得分:0)
Console.ReadLine();
代码将使用输入流。因此,该程序将等到用户输入内容。阅读下面的文章。
尝试此代码。并确保lines
具有值。
foreach (string emotion in emotions)
{
var lines = File.ReadAllLines("C:\\Users\\Griffin\\Documents\\C#\\thavma\\thavma\\bin\\Debug\\libraries\\" + emotion + ".lib");
emotiondict.Add(emotion, lines);
foreach (string f in lines)
{
Console.WriteLine(f);
}
}
Console.ReadLine();