私はWPFで子供向けのクイズを作成しています。
すべての質問はデータベースから来ています。
インターフェースには、質問用のテキストブロックと、多肢選択式の回答用の 4 つのボタンがあります。
正解が常に同じボタンに表示されないように、ボタンのコンテンツをランダムに割り当てるにはどうすればよいですか?
答えをシャッフルする方法を使用できます。
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);