我正在使用System.Linq.Dynamic动态地使用linq对列进行分组,并且需要执行
如何对列进行求和,即(Sum(Deposits))。用户将在运行时选择表和列。 例如:上表有Territory,State,BankName,Year,QuarterFromMainT
假设用户已选择这些列进行分组(Territory,State,BankName),而现在想要对列ex:Deposits求和。我怎样才能做到这一点?因为只有ASEnumerable和AsQueryable只有sum。我们需要执行groupby和sum
点击here进一步说明,我的代码是:
这里t1是表,qfields是包含分组列的列表。
如何使用linq在groupby之后对列进行求和?
答案 0 :(得分:0)
var query = rows
.GroupBy(row => new { row.Territory, row.State, row.BankName })
.Select(group => new
{
group.Key.Territory, group.Key.State, group.Key.BankName,
Deposits = group.Sum(row => row.Deposits)
});
答案 1 :(得分:0)
您需要设置页脚文字以显示总金额
示例:
<asp:BoundField DataField="Deposits"
FooterText="Total Desposits" />
在Gridview中你需要编写像这样的编码
Gridview.Columns[4].FooterText = dt.AsEnumerable().Select(x => x.Field<int>("Desposits")).Sum().ToString();
Gridview.DataSource = dt;
Gridview.DataBind();
它在我的应用程序中工作。你可以根据自己的方便使用它。