Linq 菜鸟在这里。我该如何纠正?
var result = (from row in rulestable.AsEnumerable()
let sup = row.Field<int>("Supplier")
let amo = row.Field<decimal>("Amount")
let adv = row.Field<decimal>("Advance")
let bal = row.Field<decimal>("Balance")
let vat = row.Field<decimal>("VatRate")
group row by new { sup, vat } into grp
select new
{
Supplier = grp.Key.sup,
Amount = grp.Sum(grp => grp["amo"]),
Advance = grp.Sum(grp => grp["adv"]),
Balance = grp.Sum(grp => grp["bal"]),
VatRate = grp.Key.vat
}).ToList();
我想将我的数据表“rulestable”分组为 2 列,Supplier 和 VatRate。结果的金额、预付款和余额必须设置为分组的任何列的总和。
我收到一个错误 - grp.Sum 上的“无法从用法中推断出类型参数”。但是,我认为这个表达式都是错误的——我认为它将对结果列求和,而不是像我想要的那样对源列求和。
例子:
输入数据表:
Supplier, Amount, Advance, Balance, VatRate
S1, 10, 5, 5, 1
S1, 10, 5, 5, 1
预期输出:
S1、20、10、10、1
最好的方法是什么?