c# - 如何使用单个 LINQ 查询按年份对事件进行分组?

标签 c# linq

我有一个表示事件的数据库表。该表有 2 个主要字段 EventDate 和 EventTitle。

我正在尝试按年份对事件进行分组以显示给用户。我正在尝试使用 Linq 查询来提取具有事件的不同年份,并且每一年都应该有该年的事件列表。所以列表中的每条记录都有年份和事件列表

我假设这可以通过一个 linq 查询来完成,但我的 linq 知识是基础的。 到目前为止,我只通过以下查询获得了列表中的不同年份:

var yearsList = (from e in Events
                 select e.EventDate.Year).Distinct();

如何将事件列表添加到每年的记录中?

最佳答案

var yearsList = from e in Events
                group e by e.EventDate.Year into g
                select new { Year = g.Key, Events = g };

这将为您提供一个包含“Year”属性和“Events”属性(那一年的所有事件)的对象列表。

看看这个方便的引用:101 Linq Samples .

关于c# - 如何使用单个 LINQ 查询按年份对事件进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1501188/

相关文章:

c# - 一个用于连接具有相同接口(interface)的两个不同对象列表的衬垫

c# - foreach to linq 提示需要

c# - 为什么 Visual Studio 认为我的 "yield return"方法返回动态对象?

c# - 如何在 TreeView 控件中显示滚动条

c# - Servicestack 期望较低的程序集版本

c# - 在文本框中的鼠标位置放置文本

c# - 名为 'System' 的表的 LINQ to SQL 问题

c# - 锁定对象

linq - SQL列级加密的EF Core解密

c# - 使用聚合和分组依据的 LINQ 查询