C# 数据表上的Linq C Groupby

C# 数据表上的Linq C Groupby,c#,linq,group-by,linq-to-dataset,C#,Linq,Group By,Linq To Dataset,我想编写一个Linq查询,在DataTable上应用GROUPBY,将结果输出为DataTable 我尝试了这段代码,它以var类型返回一个结果,但我希望结果在DataTable中 请你帮我找到一个合适的答案。好的,根据这个 select new { Years = grp.Key, RSF = grp.Sum(r => r.Field<decimal>("SpaceRSF"))

我想编写一个Linq查询,在DataTable上应用GROUPBY,将结果输出为DataTable

我尝试了这段代码,它以var类型返回一个结果,但我希望结果在DataTable中


请你帮我找到一个合适的答案。

好的,根据这个

select new
            {
                Years = grp.Key,
                RSF = grp.Sum(r => r.Field<decimal>("SpaceRSF"))
            };
希望这能有所帮助。

查看-本主题介绍如何实现两个自定义CopyToDataTable扩展方法,它们接受DataRow以外类型的泛型参数T

只需使用该文章ObjectShreder中的代码即可实现以下结果:

DataTable table = query.CopyToDataTable();

你说我想要datatable中的结果是什么意思?我的意思是说datatable dts=从dt.AsEnumerable group row by row.FieldExpDate.Year中的行逐行进入grp类似的内容不是var类型,应该是datatable类型如果你想要datatable而不是IEnumerablethanks作为答案,我已经按照你的建议做了同样的事情,但我认为在这里我们可以运行额外的foreach循环,我希望避免foreach,如果可能的话,直接将输出作为datatable
DataTable table = new DataTable();
table.Columns.Add("Years");
table.Columns.Add("RSF");
foreach(var item in query)
{
     table.Add(item.Years, items.RSF)
}
DataTable table = query.CopyToDataTable();