2009-04-28 86 views
1

我有一个二维数组,我需要将第一个对角线数字转换为零。例如,我需要转换如下:2维阵列减少

[ 1 2 3 ] 
[ 5 9 5 ] 
[ 3 2 1 ] 

对此,意思是斜线1 9 1现在0 0 0

[ 0 2 3 ] 
[ 5 0 5 ] 
[ 3 2 0 ] 

我怎样才能有效地在C#这样做吗?

+0

请检查下一个答案!! – 2009-06-01 12:39:46

回答

3

当X和Y相等时,您所做的只是将网格中的点设置为零。 (1,1),(2,2)等等;

int x = 4, y = 5; 
int[,] array = new int[x,y]; // assume we initialize this with some values 
for (int i = 0; i < x && i < y; i++) { 
    array[i,i] = 0; 
} 
+0

这将工作,但我需要通过使用LINQ或任何其他新事物更优化手段 – peter 2009-06-19 03:46:50

+1

彼得,这是关于你可以得到优化。像LINQ这样的新技术通常只会让事情变得简单,而不是更快。 – Anthony 2009-06-19 06:42:47