LINQ按对象列表中的日期分组

本文关键字:日期 对象 列表 LINQ | 更新日期: 2023-09-27 18:17:44

我有一个以下对象的列表:

public  class Item
{
    public DateTime DliveryDate { get; set; }
    public String Order { get; set; }
}

如何使用LINQ将List<Item>按日期分组?

我使用了下面的查询,但没有在按日期的组中得到异常结果。获得了一个垃圾日期为0001/1/1的List对象

var r = from i in Items
        group i by i.DliveryDate into s
        select s;

LINQ按对象列表中的日期分组

这应该会返回您需要的内容:

var listdategroup = from x in psrAlertLogItems.AsEnumerable<Item>()
                    group x by x.DliveryDate.Date into s
                    select s;

也许你的ChangeDateTime包含小时/时间信息,你应该这样做

var listdategroup = from i in psrAlertLogItems
group i by i.DliveryDate.Date into s select s;

只获取日期时间的日期部分

也许这对你有帮助。

var sorted_lists = from sort in lists
               group sort by sort.DateInfo into sorted
               select sorted;

我得到正确的结果…

您是否尝试过使用扩展方法

 var itemsGruopedByDate = Items.GroupBy(item => item.DliveryDate ).ToList();

只是一个选择。

我希望它有用。

欢呼。