我有一个名为 answers.txt 的文本文件。在这个文本文件中,我已经说了几个这样的答案:
answer1 | answer2 | answer3 |...
现在,为了阅读这些答案,我创建了一个名为 answeres 的课程,它包含以下代码:
public String getAnswer(int number)
{
stream = File.OpenText("answers.txt");
String[] answers;
string line = stream.ReadLine();
vragen = line.Split('|');
return answers[number];
}
在我需要显示这些文字的mainForm中,我有4个标签。我希望这些标签以随机顺序显示这些答案。我是这样做的:
public form1()
{
InitializeComponent();
}
private answer answer1 = new answer();
private int rand = 0;
private void form1_Load(object sender, EventArgs e)
{
label1.Text = answer1.getAnswer(rand); }
现在这不是随机的(我想要的)&这也仅适用于一个Label。如何确保在多个标签上随机显示文本文件,同时确保没有标签显示文本文件中的相同文本?
提前致谢。
答案 0 :(得分:1)
读取文件一次(而不是在每次getAnswer()调用时读取它)
public List<String> ReadAllAnswers()
{
stream = File.OpenText("answers.txt");
String[] answers;
string line = stream.ReadLine();
return line.Split('|', StringSplitOptions.RemoveEmptyEntries);
}
将所有答案放在一个列表中,然后使用如下方法对其进行随机播放:
ReadAllAnswers()
Random rnd = new Random();
answers = answers.OrderBy<string, int>((item) => rnd.Next());
然后,为answers0分配答案[0] ... labelN和答案[N]
label1.Text = answers.getAnswer(0);
//...
label4.Text = answers.getAnswer(3);
答案 1 :(得分:0)
这个清单当然可以改进。 通过伪代码将任务分解为可管理的逻辑位 每个任务都成为一个根据其任务命名的函数。
关于编程(不是C#)的好书是Code Complete
快乐的节目!