日前在專案中有需要從題庫中隨機挑選題目的需求,加上最近在MSDN論壇看到有人在問隨機取得不重複的數值的問題,為了避免之後又不小心忘記這個方便的寫法,特別寫文章來紀錄一下。
首先,請直接看這個範例(請別把這個範例當作明牌產生器喔!!槓龜我可不負責~):
接著看看原始碼:
CodeBehind:
透過LINQ,真的很威能啊!!原本可能得要透過迴圈才能完成的動作,改由LINQ來實作,就真的只需要一行!!沒錯!!一行!!
不過,您可能會擔心取出來的亂數不夠亂--別擔心,這個寫法是有參考洋人墨水的(參考連結在此:Generating random sequences with LINQ )~
Posted by on 2011/10/15 下午 10:32 回覆
我比較習慣直接用 Guid 去排
var result = Enumerable.Range( 1 , 49 ).OrderBy( d=>Guid.NewGuid() ).Take( 6 );