nest linq查询

时间:2012-05-11 15:14:48

标签: linq nested

我有一个xml文件,其中包含可以反序列化到我的列表中的项目列表:该类如下:

   [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查询以获得我想要的结果?

我尝试了以下内容:

var groups = from data.items中的p               将新的{month = p.Date.Month,year = p.Date.Year}分组为d               选择new {dt = string.Format(“{0} / {1}”,d.Key.month,d.Key.year),count = d.Count()};

但需要有另一个heiarchy或数据,因此我需要帮助生成嵌套的Linq查询?

1 个答案:

答案 0 :(得分: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)})
                };