我正在为WPF中的孩子们创建一个测验。
所有问题都来自数据库。
界面有问题的文本块和多选答案的四个按钮。
如何随机分配按钮的内容,以便正确的答案始终不在同一个按钮中?
答案 0 :(得分:3)
你可以使用一种方法来改变答案:
List<string> Shuffle(List<string> answers)
{
Random r = new Random();
Dictionary<int, string> d = new Dictionary<int, string>();
foreach (var answer in answers)
{
d.Add(r.Next(), answer);
}
return d.OrderBy(a => a.Key).Select(b => b.Value).ToList();
}
答案 1 :(得分:2)
基本上你可以通过生成0到3之间的随机数作为正确答案的位置来做到这一点。然后以数据库中的任何顺序显示其余答案。
要获取随机数,您可以使用:
var placeHolder = new Random().Next(0,3);