[問題] 依據日期 產出隨機排序
需求是在前端顯示資料時,想要讓資料隨機排序,
使用者按下下一頁按鈕時,不要顯示重覆資料。
後端的語法類似這樣
someTable.OrderBy(x => Guid.NewGuid()).Skip(pageCount).Take(pageSize)
但這樣當使用者切換分頁時,有可能顯示之前出現過的資料
所以我想了一套演算法,用每天的日期當種子,
開根號後取小數點後面的位數當作排序
產生出每日都會變動的排序
程式碼如圖
https://imgur.com/uX49AQv
程式碼如下
https://dotnetfiddle.net/sjNZAA
我覺得我這演算法有點不夠隨機
本來是要開個Sort欄位 再用排程每日更新排序的
想先研究能不能直接用程式解決這問題
不知道大家有什麼建議呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.218.40.109
※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1508146628.A.008.html
→
10/17 09:51,
6年前
, 1F
10/17 09:51, 1F
程式碼
public static IList<T> Shuffle<T>(this IList<T> list, Random random)
{
for (var i = list.Count; i > 1; i -= 1)
{
var j = random.Next(i);
var temp = list[j];
list[j] = list[i - 1];
list[i - 1] = temp;
}
return list;
}
※ 編輯: vi000246 (61.218.40.109), 10/17/2017 09:52:54