从LINQ的列表返回结果的数量限制(Limit Number of Results being re

2019-07-29 17:48发布

我使用LINQ / EF4.1拉从一个数据库中的一些成果,并希望将结果限制到(X)最近的结果。 其中X是一个数字由用户设定。

有没有办法做到这一点?

目前,我正在通过他们回来的List ,如果这将限制结果集的帮助。 虽然我可以通过循环限制,直到我打X我只是假设不通过周围的额外数据。

万一这是有关C#MVC3项目从SQL Server数据库中运行。

Answer 1:

使用Take功能

int numberOfrecords=10; // read from user
listOfItems.OrderByDescending(x => x.CreatedDate).Take(numberOfrecords)

假设listOfItems是你的实体对象的列表和CreatedDate是具有日创造的价值(这里使用的下降得到最新项目做订单)的字段。

取()函数返回从序列的起始的连续元素指定数量。

http://msdn.microsoft.com/en-us/library/bb503062.aspx



Answer 2:

results = results.OrderByDescending(x=>x.Date).Take(10);

该OrderByDescending会(你想用它来获得最新的或W / E逻辑)和Take将限制第一X项目(第一个是最近的,由于排序)您的日期/时间属性对项目进行排序。

编辑:要返回未开始的第一行中的某些行,使用Skip()

results = results.OrderByDescending(x=>x.Date).Skip(50).Take(10);


Answer 3:

使用Take()转换成一个列表中。 这样EF可以优化其创建的查询,只返回你所需要的数据。



文章来源: Limit Number of Results being returned in a List from Linq