ASP.NET MVC - Как получить случайные записи из модели?
-
08-07-2019 - |
Вопрос
Я не знаю, есть ли простой способ сделать это, но в основном я хотел бы сделать следующее:
var highlights = db.Banners.Where(h => h.Category == "highlight").ToList().GetRange(0,4);
У меня есть эта модель Баннеры, где у меня есть несколько бликов, но я бы хотел получать только 4 случайных блика каждый раз в различном порядке.
Так что код, который я использую, просто извлекает диапазон из [0..4] выделений, и если у вас меньше 4, он возвращает ошибку, и они не рандомизированы.
Есть идеи о том, как я могу сделать это легко? Р>
Я хотел бы получить результат Список <
Баннер >
, чтобы передать его в представление, но каждый раз с разными порядок как:
[1,3,4,2] || [2,1,4,3] || [12,32,15,3]
Я думаю, что это все:)
Большое спасибо
Решение
Здесь приведен пример случайной выборки LINQ для codeproject
Другие советы
Чтобы рандомизировать баннеры и получить первые четыре или меньше, вы можете сделать это:
Random r = new Random(DateTime.Now.Ticks);
var highlights = db.Banners.Where(h => h.Category == "highlight").
OrderBy(h => r.Next()).Take(4)