以前在學校學習陣列的隨機排序時, 大部分都是用swap的方法將雖機兩個元素對調, 並用迴圈隨機對調N次來達到隨機排序的效果, 寫成code大概長得就像這樣
Random rand = new Random(); int r1, r2; string tmpdata = ""; for (int j = 0; j < nums.Count() * 10; ++j) { r1 = rand.Next(0, nums.Count()); r2 = rand.Next(0, nums.Count()); // swap tmpdata = nums[r2]; nums[r2] = nums[r1]; nums[r1] = tmpdata; } |
但今天看到一個用LINQ表是的例子, 還滿有趣的, 原理是利用OrderBy來排序, 排序的根據則給近一個亂數, 就變成隨機排序了
