2次元配列を縦に取り出して合計とりたいなぁとか平均とりたいなぁとか思ってしまうことがあります。
そんなときに1行で書きたいなぁと思ったら、以下のようにします。
var tmp = a.SelectMany(
x => x.Select((item, index) => new { item, index }))
.GroupBy(y => y.index, (key, z) => { return /*ここに演算方法を記述*/ }
);
例えば、平均を計算したい場合は以下のようにします。
double[][] a = new double[][]{
new double[]{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
new double[]{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
new double[]{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
};
var tmp = a.SelectMany(
x => x.Select((item, index) => new { item, index }))
.GroupBy(y => y.index, (key, z) => { return z.Average(n => n.item); }
);