2012-04-12 34 views
2

我正在爲WPF中的孩子創建測驗。隨機分配按鈕的內容

所有問題都來自數據庫。

該接口有一個問題的文本塊和四個多選答案的按鈕。

如何隨機分配按鈕的內容,以便正確的答案始終不在同一個按鈕中?

+0

的可能重複[如何申請在SQL隨機行?] (http://stackoverflow.com/questions/19412/how-to-request-a-random-row-in-sql) – BrokenGlass 2012-04-12 19:27:41

+0

總之,使用隨機數生成器(如.NET隨機類)來應用隨機順序給答案組,並且一旦被排序,就將答案分配給按鈕。如果你想要一個不太模糊的答案,請告訴我們你到目前爲止的內容。 :) – 2012-04-12 19:28:18

回答

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(); 
    } 
+0

可能會找到一個更好的洗牌算法,但很好的答案。 – Servy 2012-04-12 19:37:02

+0

@Servy,的確只是一個想法 – ionden 2012-04-12 19:38:21

+0

@ionden非常感謝 – Noelle 2012-04-12 19:45:40

2

基本上,您可以通過生成一個介於0和3之間的隨機數作爲您的正確答案的位置。然後以他們來自數據庫的任何順序顯示答案的其餘部分。

爲了讓你可以使用隨機數:

var placeHolder = new Random().Next(0,3);