Linqで快適な生活を 其の2


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のコンビネーションは他にも色々とできそうですね!

快適、快適。