2011-12-14 100 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(); 

剛替代。

我希望它的任何用途。

乾杯。