Como fazer um loop através de múltiplas matrizes?
Pergunta
Eu sou novo para isso, então, desculpe se a minha pergunta tem sido feita antes. Eu tenho procurado, mas não foram capazes de encontrar, ou talvez reconhecer, uma resposta. Eu estou usando o Visual Studio 2008 e criar um aplicativo em vb.net.
Eu tenho 4 matrizes nomeados: - account1 account2 account3 account4. Eles têm todos os 4 elementos. Eu quero atribuir valores aos elementos nas matrizes de uma maneira eficiente. Pensei duas para próximos laços iria fazê-lo. Meu código pseudo é algo como isto
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
e, portanto, todos os elementos de todas as matrizes são preenchidos sem me ter que configurar um circuito fornext para cada nome de matriz individual. Como posso conseguir isso, por favor.
informação suficienteespero ter fornecido para ser de uso, e que você pode ajudar. Obrigado por toda e qualquer conselho.
Solução
Se bem entendi, por que não:
For i as integer = 0 to 3
account1(i) = "Account1"
account2(i) = "Account2"
account3(i) = "Account3"
account4(i) = "Account4"
Next
Editar VB.Net para Qua 's resposta:
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
Outras dicas
Você deve criar uma matriz multidimensional em vez de 4 matrizes, que lhe permitiria circuito genericly através das matrizes.
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
Como eu li o seu exemplo de código, eu não acho que você precisa usar 2 loops separados, como se eu estou certo que você está atribuindo o mesmo valor para a posição i de sua matriz por exemplo:
matriz1 (i) = matriz2 (i) = array3 (i) = array4 (i)
No seu exemplo acima, você poderia escrever algo como isto (em pseudocódigo):
for i = 0 to 3
account1(i) = MyData
account2(i) = MyData
account3(i) = MyData
account4(i) = MyData
next i
Eu acho que isso é mais claro do que tentar escrever um loop para os nomes de variáveis, especialmente para o número de matrizes que você está mantendo
Outra opção, que pode ser mais apropriado se você tiver lotes de matrizes, seria a de manter uma lista de matrizes que podem ser iteradas através simplesmente o suficiente.
Pseudocódigo para esta opção:
for each array in listOfArrays
for i = 0 to 3
array(i) = MyData
next i
next
Este é definitivamente mais claro do que tentar gerar os nomes dos arrays dinamicamente e mais sustentável, bem