2009-04-28 126 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