0

我不知道是否有一种简单的方法可以做到这一点,但基本上我想做的是:

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]

我想就是这样:)

非常感谢

4

2 回答 2

3

要随机化横幅并获得前四个或更少,您可以这样做:

Random r = new Random(DateTime.Now.Ticks);

var highlights = db.Banners.Where(h => h.Category == "highlight").
    OrderBy(h => r.Next()).Take(4)
于 2009-09-17T09:26:38.883 回答
0

是 codeproject 上的随机 LINQ 采样示例

于 2009-09-17T08:54:32.000 回答