Comment passer en boucle sur plusieurs tableaux?
Question
Je suis novice dans ce domaine. Je suis désolé si ma question a déjà été posée. J'ai cherché mais je n'ai pas pu trouver, ni peut-être reconnaître une réponse. J'utilise Visual Studio 2008 et crée une application sur vb.net.
J'ai 4 tableaux nommés: - compte1 compte2 compte3 compte4. Ils ont tous 4 éléments. Je souhaite attribuer des valeurs aux éléments des tableaux de manière efficace. Je pensais que deux pour les prochaines boucles le feraient. Mon pseudo-code ressemble à quelque chose comme ça
for i=1 to 4
for c= 0 to 3
account(i)(c)= 'mydata' /so account(i) would be account1 etc and c the element
next c
next i
et ainsi tous les éléments de tous les tableaux sont remplis sans que je doive configurer une boucle fornext pour chaque nom de tableau individuel. Comment puis-je atteindre ceci s'il vous plaît.
J'espère avoir fourni suffisamment d’informations pour pouvoir vous aider et pouvoir vous aider. Merci pour tous et tout conseil.
La solution
Si je comprends bien, pourquoi pas:
For i as integer = 0 to 3
account1(i) = "Account1"
account2(i) = "Account2"
account3(i) = "Account3"
account4(i) = "Account4"
Next
Modifier VB.Net pour la réponse Qua :
dim accounts(4,4) as integer
for i as integer = 0 To accounts.GetUpperBound(0)
for j as integer = 0 To accounts.GetUpperBound(1)
accounts(i, j) = new integer 'not needed for intergers, but if you had a class in here'
accounts(i, j) = i*j;
next
next
Autres conseils
Vous devez créer un tableau multidimensionnel au lieu de 4 tableaux, ce qui vous permettrait de faire une boucle générique dans les tableaux.
int[,] accounts = new int[4,4] // 4 accounts with 4 elements
for (int i = 0 ; i < accounts.GetUpperBound(0); i++)
for (int j = 0 ; i < accounts.GetUpperBound(1); j++)
accounts[i,j] = i*j;
next
next
En lisant votre exemple de code, je ne pense pas que vous deviez utiliser deux boucles distinctes, car si je ne me trompe pas, vous attribuez la même valeur à la ième position de votre tableau. par exemple:
tableau1 (i) = tableau2 (i) = tableau3 (i) = tableau4 (i)
Dans l'exemple ci-dessus, vous pouvez écrire quelque chose comme ceci (en pseudocode):
for i = 0 to 3
account1(i) = MyData
account2(i) = MyData
account3(i) = MyData
account4(i) = MyData
next i
Je pense que cela est plus clair que d'essayer d'écrire une boucle pour les noms de variables, en particulier pour le nombre de tableaux que vous gérez
Une autre option, qui pourrait être plus appropriée si vous avez beaucoup de tableaux, serait de maintenir une liste de tableaux qui peuvent ensuite être itérés simplement.
PseudoCode pour cette option:
for each array in listOfArrays
for i = 0 to 3
array(i) = MyData
next i
next
Ceci est clairement plus clair que d'essayer de générer les noms des tableaux de manière dynamique, et plus facile à gérer