2011-12-14 54 views
0

列表的日期,我有以下对象的名单:LINQ GROUPBY在对象

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

我怎么能集团这个List<Item>使用LINQ日期?

我用下面的查询,但一组按日期在没有得到例外的结果得到了一个List对象与0001/1/1

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

这是什么`日期`类型?特别是,它是否重写`Equals`和`GetHashCode`(或实现`IEquatable `)?另外,请给我们详细介绍您在尝试时看到的内容,而不仅仅是“没有任何好的结果”。请阅读http://tinyurl.com/so-hints提出有关询问一个好问题的提示。 – 2011-12-14 12:29:18

+0

@JonSkeet感谢您发表评论我已更新问题 – Sudantha 2011-12-14 12:31:39

+0

您已更新它,以提供*一些*更多信息,但不是*足够*的信息,也没有任何迹象表明您的日期有效以...开始...(哦,什么是`DliveryDate`?你只显示'ChangeDateTime`。 – 2011-12-14 12:32:22

回答

0

这应返回:

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

垃圾日期也许你ChangeDateTime包含小时/时间信息,你应该做的

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

你需要让你的唯一日期时间当天组件

0

可能这可以帮助ü..

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

我得到正确的结果..

0

你试过它使用扩展方法

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

刚替代。

我希望它的任何用途。

干杯。