2009-12-15 7 views
1

Im accordant cette boucle et quoi remplir le tableau withteh sortie de mes méthodes, je ne suis pas sûr de cette dernière partie "array2DB [i, i] =" comment Shold je fais cela.comment mettre à jour dans un tableau 2D?

boucle mise à jour basée sur 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()); 
     } 
    } 

Répondre

1

Je ne suis pas 100% sûr de ce que vous voulez faire, mais vous voulez probablement cela au lieu de votre dernière ligne:

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

-1 dans l'index est nécessaire, car les tableaux sont indexés à partir 0 dans .NET.

+0

bon point, donc je reconnais le 0-1 est l'emplacement et le I est le département alors? – Darkmage

+0

Oui, car vous avez créé le tableau sous la forme [2, 30]. Donc 0-1 est la position dans la première dimension et i est l'indexation du second. Vous pouvez bien sûr créer le tableau comme [30, 2], puis l'indexer en conséquence, cela dépend de ce dont vous avez besoin. – silk

1

Ce qui est le plus que vous pouvez faire, sans courir en exception:

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()); 

    } 

Notez que vous ne pouvez pas avoir array2DB[2, *] ou au-dessus parce qu'il générera une exception arrayoutofbound.

+0

ouais j'ai remarqué et fixé les limites hors tension, mais le 0 et 1 dans votre exemple le 0 et 1 l'emplacement? et le je le département dans le tableau? – Darkmage

+0

i est la profondeur de la deuxième dimension (avec la borne 30), les 0 et 1 sont les deux seules valeurs que la première dimension peut avoir, parce que vous le déclarez comme tel. – Graviton

1

Vous devez utiliser deux pour les boucles. Un pour chacun des axes x et y du tableau.

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