2017-05-26 98 views
-6

我有二維數組。C#二維數組索引交換

例如:

 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} 
     }; 

我需要對2號的某些變化的KeyEvent指數(指數 - [1,1])。

例如:

 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 

任何想法,該怎麼辦呢?

+4

您想交換兩個數組項目。你嘗試了什麼?這是一個非常簡單的問題。你應該能夠自己弄明白。 –

+3

究竟是什麼問題?你有什麼嘗試? –

+0

也是一個簡單的搜索產生幾個解決方案 – Fabiano

回答

0

有一篇優秀的文章可用here的文章形式。

它給出用於處理多維數組包括用於管理陣列下面的代碼進行了深入的解釋的全過程:

// 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]); 


在上面的例子進行修改,它會改變第二(使用到的8

值在上述用於訪問例如基於零的索引)項的第二整數,就顯示第三項的第二整數,它將返回6.



直接回答你的問題中,「交換」變量的概念包括三個步驟:

  1. 使用訪問設置前值爲
  2. 一個臨時變量的值,使用setter和一個訪問於第一值設置爲所述第二值
  3. 使用設定器來設定第二值到所述臨時變量的值


該工作的一個例子是:

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

在你給出的例子中,看起來你將第二個數組中的第三個項目設置爲第二個數組中的第二個項目。此過程可以使用以下方法完成:

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