我有一个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查询?
答案 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)})
};