2009-04-28 10 views
1

Ich habe ein 2-dimensionales Array, in dem ich die ersten diagonalen Zahlen zu Null konvertieren muss. Zum Beispiel muss ich folgendes konvertieren:2-Dimensional Array Reduction

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

Um dies zu, die diagonal 1 9 1 Bedeutung ist nun 0 0 0:

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

Wie kann ich dies effizient in C#?

+0

Bitte überprüfen Sie die nächste Antwort !!. –

Antwort

3

Alles, was Sie tun, ist, die Punkte im Raster auf Null zu setzen, wenn X und Y gleich sind. (1,1), (2,2) und so weiter;

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

Dies wird funktionieren, aber ich brauche mehr optimierte Mittel durch die Verwendung von LINQ oder andere neue Dinge – peter

+1

Peter, das ist etwa so optimiert, wie Sie bekommen können. Neue Technologien wie LINQ werden im Allgemeinen die Dinge nur einfacher und nicht schneller machen. – Anthony