Linqには、二つの配列の中身を走査して、操作するZip関数があります。これをAggregate関数と合わせると、リスト内のdouble配列の中身をindex別に足し合わせることが簡単にできます。
var doubleArrayList = new List<double[]>() {
new double[3] { 1, 2, 3 },
new double[3] { 1, 1, 1 },
new double[3] { 10, 31, 41 }
};
var zippedList = doubleArrayList.Aggregate((total, calculatingArray) => total.Zip(calculatingArray, (valOfTotal, valOfCalc) => valOfTotal + valOfCalc).ToArray());
zippedListは double[3] {12, 34, 45} となります。 AggregateとZipのコンビネーションは他にも色々とできそうですね!
快適、快適。