如何在C#中动态执行列的总和?

时间:2013-08-07 17:03:55

标签: c# linq

我正在使用System.Linq.Dynamic动态地使用linq对列进行分组,并且需要执行

如何对列进行求和,即(Sum(Deposits))。用户将在运行时选择表和列。 enter image description here 例如:上表有Territory,State,BankName,Year,QuarterFromMainT

假设用户已选择这些列进行分组(Territory,State,BankName),而现在想要对列ex:Deposits求和。我怎样才能做到这一点?因为只有ASEnumerable和AsQueryable只有sum。我们需要执行groupby和sum

点击here进一步说明,我的代码是:

enter image description here

这里t1是表,qfields是包含分组列的列表。

如何使用linq在groupby之后对列进行求和?

2 个答案:

答案 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();

它在我的应用程序中工作。你可以根据自己的方便使用它。