我有这样的表:
title row1 row2
'p1' 3 4
'p2' 23 43
'p3' 21 23
我想在此表中添加其他摘要行:
title row1 row2
'p1' 3 4
'p2' 23 43
'p3' 21 23
'total' 47 70
如何用LINQ以简单的方式做到这一点?我有很多列,所以查询:
Row r = new Row();
r.row1 = list.Sum(x=>x.row1);
r.row2 = list.Sum(x=>x.row2);
不是好主意(在我看来)......
答案 0 :(得分:3)
您可以将它组合成一个LINQ查询,如下所示:
var result = row
.Select(r => r)
.Union(new Row[]
{
new Row
{
Title = "total",
Row1 = row.Sum(r => r.Row1),
Row2 = row.Sum(r => r.Row2)
},
});
但最终你还是单独对行进行求和。我想不出办法解决这个问题。
答案 1 :(得分:1)
我看不出明显改善你的建议的方法
var total = new List<Row>{new Row{
title="total",
row1=rows.Sum(r1=>r1.row1),
row2=rows.Sum(r2=>r2.row2)
}};
var q = rows.Concat(total);