我正在为 WPF 中的孩子创建一个测验。
所有的问题都来自数据库。
该界面有一个问题的文本块和多个选择答案的四个按钮。
如何随机分配按钮的内容,以便正确答案不会一直在同一个按钮中?
您可以使用一种方法来打乱答案:
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();
}
本质上,您可以通过生成 0 到 3 之间的随机数作为正确答案的位置来做到这一点。然后以它们从数据库中出现的任何顺序显示其余答案。
要获取随机数,您可以使用:
var placeHolder = new Random().Next(0,3);