2009-04-28 10 views
1

私は、最初の対角の数を0に変換する必要がある2次元配列を持っています。今0 0 0対角線1 9 1を意味し、これに2次元配列の削減

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

されています:例えば、私は次のように変換する必要があり

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

にはどうすれば効率的にC#でこれを行うことができますか?

+0

次の回答を確認してください!! –

答えて

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

+1

ピーター、これはあなたが得ることができるほど最適化されています。 LINQのような新技術は一般的に物事をより速くするのではなく、簡単にするだけです。 – Anthony