ASP.NET MVC - Wie zufälligen Datensätze von Modell zu bekommen?
-
08-07-2019 - |
Frage
Ich weiß nicht, ob es eine einfache Möglichkeit, es zu tun, aber im Grunde, was ich tun möchte, ist:
var highlights = db.Banners.Where(h => h.Category == "highlight").ToList().GetRange(0,4);
Ich habe dieses Modell Banner, wo ich einige Highlights, aber ich mag nur 4 zufällige Highlights jedes Mal in einer anderen Reihenfolge abgerufen werden.
So ist der Code Ich verwende abrufen nur einen Bereich von [0..4] Highlights und wenn Sie weniger als 4 ist, es gibt einen Fehler, und sie sind nicht randomisiert.
Alle Ideen, wie kann ich es einfach tun?
Das Ergebnis Ich mag würde, ist eine haben, List<
Banner>
es passieren zu der Ansicht, aber jedes Mal mit anderer Reihenfolge wie:
[1,3,4,2] || [2,1,4,3] || [12,32,15,3]
Ich denke, das ist es:)
Vielen Dank
Lösung
Hier ist ein Beispiel für Zufall LINQ Sampling auf Codeproject
Andere Tipps
Um Banner Randomisierung und die ersten vier oder weniger erhalten Sie könnten dies tun:
Random r = new Random(DateTime.Now.Ticks);
var highlights = db.Banners.Where(h => h.Category == "highlight").
OrderBy(h => r.Next()).Take(4)