【发布时间】:2014-05-30 02:14:29
【问题描述】:
我有一个IEnumerable<IEnumerable<double>>,它基本上可以被认为是一个二维数组,我想做的是得到一个一维数组(或列表或其他),它是我原始集合中所有列的总数.换句话说,如果我有:
1 2 3 4
2 3 1 6
3 4 5 6
-------------
6 9 9 16
我想要最后一行(显然,这不是原始集合的一部分)。
有没有一种简单的方法可以使用 LINQ 来完成此操作,这样我就不必遍历整个事情了?我知道我可以使用.Sum 合计一行或一列,但我想合计每一行。
我看到一些其他问题(主要是处理数据库查询)建议使用group,但这似乎对我不起作用。我试过这个:
var totals = from p in toTotal
group p by 1 into g
select g.Sum(t => t.First());
但这只是全部。
有没有聪明的方法来做到这一点?
编辑:例如,如果toTotal 被定义为:
List<List<double>> toTotal = new List<List<double>>() {
new List<double> {1, 2, 3, 4},
new List<double> {2, 3 , 1, 6},
new List<double> {3 , 4, 5 , 6}
};
【问题讨论】: