2009-12-15 60 views
1

即時調整這個循環,以及如何填充我的方法輸出數組,我不知道最後一部分「array2DB [我,我] =」我怎麼這樣做。如何更新到二維數組?

基於replyes

更新循環

private void BackGroundLoop() 
    { 
     for (int i = 1; i < 31; i++) 
     { 
      string txbName = "br" + i + "txt" + '3'; 

      TextBox txtBCont1 = (TextBox)this.Controls[txbName]; 

      string string1 = txtBCont1.Text.ToString(); 
      UpdateFormClass.runUserQuery(string1); 

      array2DB[0, i - 1] = int.Parse(UpdateFormClass.gamleSaker.ToString()); 
      array2DB[1, i - 1] = int.Parse(UpdateFormClass.nyeSaker.ToString()); 
     } 
    } 

回答

1

我不是100%肯定,你想要做什麼,但你可能希望這不是你的最後一行:

 
array2DB[0, i - 1] = int.Parse(UpdateFormClass.gamleSaker.ToString()); 
array2DB[1, i - 1] = int.Parse(UpdateFormClass.nyeSaker.ToString()); 

-1指標是必要的,因爲數組索引從0在.NET中。

+0

好點,所以我調查0-1是位置和我是部門呢? – Darkmage 2009-12-15 13:35:00

+0

是的,因爲你創建了數組[2,30]。 所以0-1是第一維中的位置,我是索引第二維。 您當然可以將數組創建爲[30,2],然後對其進行索引,具體取決於您需要的內容。 – silk 2009-12-19 23:51:07

1

這是最可以做,而不會遇到例外:

int[,] array2DB = new int[2, 30]; 
    for (int i = 0; i < 30; i++) 
    { 
     string txbName = "br" + i + "txt" + '3'; 

     TextBox txtBCont1 = (TextBox)this.Controls[txbName]; 

     string string1 = txtBCont1.Text.ToString(); 
     UpdateFormClass.runUserQuery(string1); 

     array2DB[0,i] = int.Parse(UpdateFormClass.gamleSaker.ToString()); 
     array2DB[1,i] = int.Parse(UpdateFormClass. nyeSaker.ToString()); 

    } 

請注意,你不能有array2DB[2, *]或以上,因爲它會產生一個arrayoutofbound異常。

+0

是的,我注意到並修復了出界,但0和1在你的exsample它0和1的位置?和我在數組中的部門? – Darkmage 2009-12-15 13:31:34

+0

我是第二維的深度(與界限30),0和1是第一維可以具有的唯一兩個值,因爲您聲明爲這樣。 – Graviton 2009-12-15 13:38:11

1

您必須使用兩個for循環。一個用於陣列的x軸和y軸。

for (int i = 0; i < 2; i++){ 
    for (int j = 0; j < 30; j++) 
    { 
     .... 
     array2DB[i,j] = int.Parse(UpdateFormClass.gamleSaker.ToString()) 
      , int.Parse(UpdateFormClass.nyeSaker.ToString()); 
    } 
}