我想写一个Linq
个问题,在DataTable
上应用分组,将结果输出为DataTable
。
我尝试了此代码,该结果返回var
类型的结果,但我想将结果放在DataTable
var query = from row in dt.AsEnumerable()
group row by row.Field<DateTime>("ExpDate").Year into grp
select new
{
Years = grp.Key,
RSF = grp.Sum(r => r.Field<decimal>("SpaceRSF"))
};
请你帮我找一个合适的答案。
答案 0 :(得分:2)
查看How to: Implement CopyToDataTable - 本主题描述了如何实现两个自定义CopyToDataTable扩展方法,这些方法接受DataRow以外类型的泛型参数T.
只需使用该文章中的代码(ObjectShredder<T>
)即可获得以下结果:
DataTable table = query.CopyToDataTable();
答案 1 :(得分:0)
select new
{
Years = grp.Key,
RSF = grp.Sum(r => r.Field<decimal>("SpaceRSF"))
};
code which return result as var type
有效地返回具有两个属性的对象集合:Years
和RSF
。
如果您想拥有数据表,那么编写将所有数据放入数据表的代码。基本上,它看起来可能与以下类似:
DataTable table = new DataTable();
table.Columns.Add("Years");
table.Columns.Add("RSF");
foreach(var item in query)
{
table.Add(item.Years, items.RSF)
}
希望这有帮助。