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 suficiente

espero ter fornecido para ser de uso, e que você pode ajudar. Obrigado por toda e qualquer conselho.

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top