ASP.NET MVC - 如何从模型中获取随机记录?

时间:2009-09-17 08:41:39

标签: asp.net-mvc model random sorting records

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

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]

我认为就是这样:))

非常感谢

2 个答案:

答案 0 :(得分:3)

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

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

var highlights = db.Banners.Where(h => h.Category == "highlight").
    OrderBy(h => r.Next()).Take(4)

答案 1 :(得分:0)

Here是codeproject上随机LINQ采样的一个例子