-2

我有一个 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
 |--1月
   |-- 01/01/2005
   |-- 2005 年 1 月 10 日
 |--三月
   |-- 03/05/2005
--2010
 |--1月
   |-- 2010 年 1 月 1 日
   |-- 2010 年 1 月 10 日
 |--三月
   |-- 2010 年 3 月 5 日
...

为了得到我想要的结果,我可以对我的数据做的最好和最快的 linq 查询是什么?

我尝试了以下方法:

var grouped = from p in data.items group p by new { month = p.Date.Month, year = p.Date.Year } into d select new { dt = string.Format("{0}/{1}" , d.Key.month, d.Key.year), count = d.Count() };

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

4

1 回答 1

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)})
                };
于 2012-05-11T15:34:52.427 回答