c# - Linq Group 按日期和对象列表列出

标签 c# .net linq

我正在寻找一种按日期获取分组列表的方法。

我成功地按日期对我的列表进行了排序,但我知道如何在新列表中获取包含所有分组对象的列表。

List<PersonneWithDate> personneList = GetPersonnelsByDay ();
var groups = from p in personneList
    group p by new { day = p.Date.Day, month = p.Date.Month , year= p.Date.Year } into d
    select new { dt = string.Format("{0}/{1}/{2}", d.Key.day,d.Key.month,d.Key.year), count = d.Count()};

给我一​​个列表,其中包含一个具有 dt 和 count 的对象,但我想要所有的 PersonneWithDate 也被分组。

我该怎么做?

最佳答案

我不确定我是否理解你的问题,但这就是你想要的吗?

List<PersonneWithDate> personneList = GetPersonnelsByDay();
var groups =
(
    from p in personneList
    group p by p.Date.Date into d
    select new
    {
        dt = d.Key.ToShortDateString(),
        count = d.Count(),
        personnel = d.ToList(),
    }
).ToList();

(我也稍微简化了查询分组。)

关于c# - Linq Group 按日期和对象列表列出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34701506/

相关文章:

linq - 如何在 LINQ 中加入常量?

c# - 如何使用“Entity Framework Core”(又名EF7)实现“软删除”?

c# - Linq:将数据选择到多个列表中

c# - "dynamic"类型能否在通用集合 <dynamic> 中安全变化?

.net - 扩展 WCF channel 以在失败时自动重新创建(/重新连接)自身

.net - 使用 HtmlAgilityPack 自动单击按钮

c# - .net 在运行时重新加载程序集

linq - 使用 Linq 按数组内的数组分组

c# - C# 中的 Windows shell 脚本

c# - 如何在库上设置运行时绑定(bind)重定向