2017-05-26 6 views
-6

Ich habe 2D-Array.C# 2D-Array Indizes Austausch

zum Beispiel:

 int[,] Map = new int[5, 5] 
     { 
     {1,1,1,1,1}, 
     {1,2,0,0,1}, 
     {1,0,0,0,1}, 
     {1,0,0,0,1}, 
     {1,1,1,1,1} 
     }; 

Und ich brauche auf einig KeyEvent Änderungsindex der Nummer 2 (Index - [1,1]).

zum Beispiel:

 1,1,1,1,1 
     1,0,2,0,1 
     1,0,0,0,1 
     1,0,0,0,1 
     1,1,1,1,1 

Jede Idee, wie es zu tun?

+4

Sie möchten zwei Array-Elemente austauschen. Was hast du versucht? Dies ist ein sehr einfaches Problem. Sie sollten es selbst herausfinden können. –

+3

Mit was genau hast du ein Problem? Was hast du probiert? –

+0

auch ergibt eine einfache Suche mehrere Lösungen – Fabiano

Antwort

0

Es gibt eine ausgezeichnete Dokumentation in Form eines Artikels zur Verfügung here.

Es gibt eine ausführliche Erläuterung des gesamten Prozesses für die Anordnung für die Verwaltung von mehrdimensionalen Arrays einschließlich der folgenden Code Handhabung:

// Initialization 
int[,] array = new int[4, 2]; 
int[,] array2D = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } }; 

// Modification 
array2D[1, 1] = 8; 

// Access 
Console.WriteLine(array2D[2,1]); 


In dem obigen Beispiel für die Modifikation, wird es die zweite Änderung (Verwendung eines Nullbasierten Index) Element des zweiten ganzen Zahl zu dem Wert von 8.

In dem obigen Beispiel für den Zugriff auf, wird es das dritte Element des zweiten ganzen Zahl anzuzeigen, welche 6.

01 zurückkehren

Zur Beantwortung Ihrer Frage direkt, beinhaltet das Konzept der „Austausch“ Variablen in drei Schritten:

  1. einen Accessor Mit dem Wert einer temporären Variablen für den ersten Wert
  2. einen Setter und einen Accessor setzen Verwendung den ersten Wert auf den zweiten Wert einzustellen
  3. einen setter Verwenden des zweiten Wertes zu der temporären variablen der Wert einzustellen


ein Beispiel dieses Arbeits wäre:

int a = 5; 
int b = 6; 
int temp; 
temp = a; // Step 1 
a = b; // Step 2 
b = temp; // Step 3  

Mit dem Beispiel, das Sie angegeben haben, scheint es, dass Sie das dritte Element im zweiten Array auf das zweite Element im zweiten Array festlegen. Diese Prozedur kann folgendermaßen durchgeführt werden:

int temp; 
temp = map[1, 2]; 
map[1, 2] = map[1, 1]; 
map[1, 1] = temp;