首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在使用linq对记录进行排序后获得设置的行数?

如何在使用linq对记录进行排序后获得设置的行数?
EN

Stack Overflow用户
提问于 2019-07-12 01:06:36
回答 1查看 68关注 0票数 0

我正在使用EF模型的ASP.NET核心。我想按日期和时间显示一些行,但我只想要5条记录。我关心的是,它实际上是在获取5条记录之前先对所有行进行排序,还是从表中提取5行,然后对它们进行排序。我需要的是前者,它们被排序,然后在linq中从已经排序的列表中获取5条记录。

我试过了:

代码语言:javascript
运行
复制
Model.Meetings.OrderBy(x => x.Date).ThenBy(x => x.Time).Take(5)

还有,

代码语言:javascript
运行
复制
Model.Meetings.Take(5).OrderBy(x => x.Date.ThenBy(x => x.Time)

第一个似乎没有显示,或者实际上没有返回任何内容。

第二个可以工作并显示5条记录,但是哪5条记录呢?

代码语言:javascript
运行
复制
@foreach (var meeting in Model.Meetings.Take(5).OrderBy(x => x.Date).ThenBy(x => x.Time))
{
    @if (meeting.Date > DateTime.Today)
    { 
        <tr>
            <td>@meeting.Name</td>
            <td>@meeting.Date</td>
            <td>@meeting.Time</td>
        </tr>
    }
}

我希望得到5条记录,以显示按日期然后按时间排序,但排序记录首先显示他们。

以下是示例数据集:

Id日期日期IsActive位置ThisEventId时间

2019-07-19 00:00:00.0000000周五1 On-校园2 09:15:00.0000000

2 2019年7月19日00:00:00.0000000周五1月3日09:00:00.0000000

3 2019年07月19日00:00:00.0000000周五1月4日09:30:00.0000000

4 2019年07月19日00:00:00.0000000周五1月5日10:30:00.0000000

5 2019年07月19日00:00:00.0000000周五1月6日11:00:00.0000000

6 2019年07月19日00:00:00.0000000周五1月7日11:30:00.0000000

2019年07月19日00:00:00.0000000周五1月8日13:00:00.0000000

82019-06-20 00:00:00.0000000周四1月9日08:45:00.0000000

2019-06-20 00:00:00.0000000周四1- 10 -10 09:00:00.0000000

102019-06-20 00:00:00.0000000周四1- 11 09:30:00.0000000

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56994199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档