在Linq內使用亂數排序
- 1910
- 0
小鋪的首頁友站連結圖片跑馬燈是利用亂數排序的方法做的,之前是使用讀出來的資料丟到dataset後再做亂數排序,後來看了網路上的一些作法就發現了更讚的方式囉,這種常用的東西一定要紀錄的啦。

- http://www.dotblogs.com.tw/topcat/archive/2008/03/28/2343.aspx
- http://bibby.be/2008/11/10.html
- http://blog.miniasp.com/post/2008/03/Randomizing-LINQ-to-SQL-queries.aspx
以上三種方法的寫法都很棒,剛好demo正在學習LINQ所以就選擇了保哥的範例來實做,先建立一個檢視表(view)內容如下
SELECT fw_imgUrl,NEWID() AS id, fw_webName FROM dbo.friendWeb
利用NEWID()產生一個類似guid的不規則值,並且每次執行都會重新產生一次
然後利用LINQ讀取出來就好啦
dcFriendWebDataContext dc = new dcFriendWebDataContext();
var emps = from p in dc.viewShowFriendImg
orderby p.id
select new { p.fw_imgUrl,p.fw_webName };
因為p.id是利用NEWID()產生出來的亂數,所以拿p.id來排序就可以達到亂數排序的需求
網友回應
- 目前尚無回應