LINQ In 子句与 Group By 和每组内的前 N 条记录
我有如下两堂课。如果我有一个像 List 这样的类 Schedule 的通用列表,我将如何编写 LINQ 查询,以便我可以获得此列表中 SourceId 匹配 1,2,3...X 且 StartTime > 的所有项目。某个日期时间,然后我想返回每个 SourceId 的前 3 个元素(即:按 SourceId 分组)
由于此列表将包含大量记录,我想编写最有效的 LINQ 查询
另外我想要结果的最终形状以List的形式
public class Source
{
public int SourceId { get; set; }
public string Name { get; set; }
}
public class Schedule
{
public int SourceId { get; set; }
public Source Source { get; set; }
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
经过几个小时的谷歌搜索后:
after hours of googling:
假设:
您可以使用
List
>作为您的结果(前 3 个按源 ID 分组,仍然以列表形式返回)Assuming that:
you're ok with having a
List<KeyValuePair<int,Schedule>
> as your result (top 3 grouped by Source Id and still returned as a list)