2012-05-11 27 views
-2

我有一個包含項目我可以反序列化到我的清單列表的XML文件:類是如下:巢LINQ查詢

[Serializable()] 
    public class cls_item 
    { 
     #region enum 
     public enum itemtype 
     { 
     cash, 
     credit, 
     check 
     } 
     #endregion 

     #region properties 
     public DateTime Date { get; set; } 
     public itemtype Type { get; set; } 
     public double Value { get; set; } 
     #endregion 
    } 

我加載數據,根據這些數據之後,得到,我想要做一個嵌套的LINQ查詢打造顯示如下樹:

 
--2005 
|--January 
    |-- 01/01/2005 
    |-- 01/10/2005 
|--March 
    |-- 03/05/2005 
--2010 
|--January 
    |-- 01/01/2010 
    |-- 01/10/2010 
|--March 
    |-- 03/05/2010 
... 

什麼是最好,最快的LINQ查詢我可以在我的數據做的就是我想要的結果嗎?

我曾嘗試以下操作:將新的{個月= p.Date.Month,年= p.Date.Year}爲d,從p

VAR分組=在data.items 羣p 新選擇{dt = string.Format(「{0}/{1}」,d.Key.month,d.Key.year),count = d.Count()};

但需要有另一個heiarchy或數據,因此我需要生成一個嵌套的Linq查詢幫助?

+2

歡迎堆棧溢出!你有沒有試圖做到這一點的特定問題?我建議查看常見問題條目,[我可以在這裏詢問什麼樣的問題?](http://stackoverflow.com/faq#questions) –

+0

或短版本:你有什麼試過? – BrokenGlass

回答

1

像這樣的東西可能讓你在正確的方向:

var result = from d in myList 
      group d by d.Date.Year into g 
      select new 
       { 
        Year = g.Key, 
        Months = g.GroupBy (x => x.Date.Month) 
         .Select (x => new {Month=x.Key, Dates=x.Select (y => y.Date)}) 
       }; 
+0

爲實際日期heirarchy,我只需要添加一個Distinct,因爲我將在同一天內有多個項目,我會在哪裏添加DISTINCT()? – phamtv

+0

將它追加到最後一行的'Dates = x.Select(y => y.Date)'。它變成'Dates = x.Select(y => y.Date).Distinct()' – Robaticus