4
A
回答
5
如果你想隨機重新排序到位你應該改組列表,以擴展方法的使用是那麼簡單的一行。這假定你已經有一個基於IList
的集合。
用法:myList.Shuffle();
public static void Shuffle<T>(this IList<T> list)
{
Random rng = new Random();
int n = list.Count;
while (n > 1)
{
n--;
int k = rng.Next(n + 1);
T value = list[k];
list[k] = list[n];
list[n] = value;
}
}
幸得這樣的回答:中[隨機排列在C#中的列表
9
注意的最快方法:每mquander的評論如,下面的答案是不執行的推薦方式「隨機排序「因爲它在語義上不正確,與接受的shuffle算法相比效率不高,它基於
Guid
s, 的私有實現細節,甚至濫用LINQ查詢語法。然而,OP所要求的是「最少量的代碼」(根據自己的書面形式而不是由框架處理)爲 。
var randomOrdering = yourList.OrderBy(o => Guid.NewGuid());
相關問題
- 1. 最快排序的小集合
- 2. 流星排序集合隨機
- 3. 傑基爾隨機排序集合
- 4. 重新排序JSON集合
- 5. 重新排序集合C#
- 6. 隨機快速排序C#
- 7. 隨機快速排序
- 8. 合併排序(看似隨機重複)
- 9. PHP隨機重新排序數組
- 10. 重新排序字典隨機
- 11. Linq查詢排序集合
- 12. LINQ查詢排序集合
- 13. 最快的方式排列
- 14. 列表分類排序方式隨機
- 15. 合併排序的方式比插入排序更快謎題
- 16. C++隨機快速排序錯誤
- 17. 快速排序和樞軸隨機
- 18. 快速排序與隨機樞軸
- 19. 更新MySQL表隨着隨機排序
- 20. 按隨機順序的新Guid排序
- 21. 用linq排序可觀察的集合
- 22. LINQ排序依據包含的集合
- 23. 尋呼在LINQ + MVC使用隨機有序集合
- 24. 最快的方式通過LINQ
- 25. Java隨機集合
- 26. 最快的方式從數據庫中獲得隨機記錄
- 27. 最快的方式獲得MySQL隨機行
- 28. 隨機生成的密碼shuffle(隨機重新排列)
- 29. 重新排列(重新排序,排序)陣列,你所希望的方式PHP
- 30. 僞隨機排序查詢集
可能重複(http://stackoverflow.com/questions/273313/隨機化一個清單) – nawfal 2013-02-12 10:51:03