0
我有int数组表示矩阵矩阵的元素。我需要获得行,列和2个主对角线。我无法获得第二对角线(对于3 * 3矩阵,它是指数为2,4,6,6 * 6 - 5,10,15,20,25,30的元素)。我想知道有没有一个干净的方式来做到这一点没有for循环。在线性表示中获得方矩阵的主对角线
var matrix = new int[] { 6, 7, 2, 1, 5, 9, 8, 3, 4 };
int size = 3;
int i = 0;
var rows = matrix.GroupBy(x => i++/size);
i = 0;
var columns = matrix.GroupBy(x => i++ % size);
var diag1 = matrix.Where((x, index)=>index%(size+1)==0);
var diag2 = matrix.Where((x, index) => index % (size - 1) == 0);//PROBLEM - takes 0,8 indexes also.