我有一個列表,可以有一個可變數量的項目(但不超過30個,所以沒有性能問題),我想獲得最多10個隨機項目,我寫了一段代碼,列表中有10多個項目。下面的代碼的問題是,如果列表中少於10個項目並且如果少於10個項目我想以隨機順序顯示它們,它顯然不會隨機化結果。如何從列表中獲得最多10個隨機項目?
var keyPersons = people.ToList();
Random rnd = new Random();
while (keyPersons.Count() > 10)
{
int j = rnd.Next(0, keyPersons.Count());
keyPersons.RemoveAt(j);
}
rptKeyPersons.DataSource = keyPersons;
如果在人員列表中只有5個項目,我該如何隨機化結果?
在此先感謝。
您的代碼將刪除隨機點的物品,直到剩下10個物品。如果您的項目少於10個,那麼您最終只會列出已有的列表。那麼問題是什麼?你需要一個隨機*訂購*?在任何一種情況下,我都可能只是將名單洗牌並拿出前10項,顯然允許少於10項可能存在,根據你的規則聽起來很好。 – 2012-02-13 04:24:54
是啊對不起,我更新了一些問題,如果有少於10我想他們都在隨機順序。 – user997685 2012-02-13 04:25:58
用於洗牌列表:http://stackoverflow.com/questions/273313/randomize-a-listt-in-c-sharp – mshsayem 2012-02-13 04:30:13