Если у вас есть несколько функций, для которых вам нужны значения столбцов, напишите функцию расширения для выборки столбцов (= транспонировать матрицу)

могу понять, как это сделать, если вообще возможно.
Пример:

int[][] myArrays = {
    new int[] {1, 2, 3},
    new int[] {4, 5, 3},
    new int[] {1, 2, 3}
};
int[] avgArray = myArrays.//Some LINQ statement to average every Nth element in the second dimension (essentially "flatten" the array)
//avgArray == {2, 3, 3}

Чтобы сделать это до сих пор, я могу думать только о:

int ndDimLen = myArrays.GetLength(1);
int[] avgArray = new int[ndDimLen];
myArrays.Select(
    arr => arr.Select( (n, i) => avgArray[i] += n )
);
avgArray = avgArray.Select( n => n / ndDimLen ).ToArray();

Но это побеждает цель и не очень хорошая идея для зубчатых массивов ...

Кроме того, я определенно хотел бы избежать транспонирования, поскольку при работе с большими массивами это довольно медленная операция!

Спасибо за уделенное время!

Ответы на вопрос(3)

Ваш ответ на вопрос