嗨,所以当我尝试从文本文件中提取问题时,让多个问题随机化一直有些麻烦。
Random Num = new Random();
int Qnumber = Num.Next(QandAClass1.Questions.Count);
label8.Text = QandAClass1.Questions.Count.ToString();
// counts items in the list and selects random number from it
label1.Text = QandAClass1.Questions[Qnumber];
///////////////////////////////////////////////////////
Answer = QandAClass1.Answers[Qnumber];
label2.Text = Answer; // Stores ans for selected question
///////////////////////////////////////////////////////
QandAClass1.Questions.RemoveAt(Qnumber);
QandAClass1.Answers.RemoveAt(Qnumber);
label8.Text = QandAClass1.Questions.Count.ToString();
这是我目前所掌握的代码,虽然效果很好,但仅适用于一个问题。但是我一次在屏幕上有五个问题,我需要所有这些都是随机的。它们只是Windows窗体上的标签。任何帮助或指针,将不胜感激。谢谢:)此表格上的PS标签8只是我的检查器,以确保已阅读所有正确数量的问题。另外,我的标签2只是用于检查答案是否与问题匹配。
答案 0 :(得分:1)
我建议采用这种方法。使基本流程正常运行。这是我经常用于随机分配商品的方法
一旦您对它起作用感到高兴,那么您的最后一项工作就是将一个列表随机化。 从主要的“问答”列表开始,然后创建一个新的空白显示列表。
从主列表中随机选择一个问答,并将其添加到显示列表中。现在,显示列表中只有一项,而主列表中少一项。重复此方法,直到有(随机)个显示项目或主列表为空。
每次从主列表中删除一项时,随机数索引的范围都会减小一。
Random rnd = new Random();
...
int randomIndex = rnd.Next(0, qaList.Count-1);