我正在构建一个程序,在按钮单击时显示从文本文件到文本框的随机行。
我只是C#的初学者所以我不确定我哪里出错了。
private void startButton_Click(object sender, EventArgs e)
{
int lineCount = File.ReadAllLines(@"D:...\QUESTIONS.text").Length;
Random rnd = new Random();
int randomLineNum = rnd.Next(lineCount);
int indicator = 0;
using (var reader = File.OpenText(@"D:...\QUESTIONS.text"))
{
while (reader.ReadLine() != null)
{
if (indicator == randomLineNum)
{
questionBox.Text = reader;
break;
}
indicator++;
}
}
}
你能帮我弄清楚这段代码应该去哪里。
提前感谢您的帮助! :)
答案 0 :(得分:2)
您可以删除代码中的许多复杂情况。
private Random r = new Random();
private void startButton_Click(object sender, EventArgs e)
{
var lines = File.ReadAllLines(@"D:...\QUESTIONS.text");
questionBox.Text = lines[r.Next(lines.Length)];
}
ReadAllLines
阅读了一次,然后再使用StreamReader
答案 1 :(得分:0)
这应该这样做:
private void startButton_Click(object sender, EventArgs e)
{
var lines = File.ReadAllLines(@"D:...\QUESTIONS.text");
int lineCount = lines.Length;
Random rnd = new Random();
int randomLineNum = rnd.Next(lineCount);
questionBox.Text = lines[randomLineNum];
}
无需两次读取同一文件,因此请将行保留在局部变量中以便以后访问。