Pregunta

Soy nuevo en esto, lo siento si mi pregunta ya se ha hecho antes. He buscado pero no he podido encontrar, o tal vez reconocer, una respuesta. Estoy usando Visual Studio 2008 y estoy creando una aplicación en vb.net.

Tengo 4 matrices llamadas: - cuenta1 cuenta2 cuenta3 cuenta4. Todos tienen 4 elementos. Quiero asignar valores a los elementos en las matrices de manera eficiente. Pensé que dos para los siguientes bucles lo harían. Mi pseudocódigo se parece a esto

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

y, por lo tanto, todos los elementos de todas las matrices se completan sin que tenga que configurar un bucle fornext para cada nombre de matriz individual. ¿Cómo puedo lograr esto, por favor?

Espero haber proporcionado suficiente información para ser útil, y que pueda ayudar. Gracias por todo y cualquier consejo.

¿Fue útil?

Solución

Si entiendo correctamente, ¿por qué no?

For i as integer = 0 to 3
    account1(i) = "Account1"
    account2(i) = "Account2"
    account3(i) = "Account3"
    account4(i) = "Account4"
Next

Edite VB.Net para la respuesta de 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

Otros consejos

Debería crear una matriz multidimensional en lugar de 4 matrices, que le permitiría recorrer genéricamente las matrices.

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

Mientras leo su ejemplo de código, no creo que necesite usar 2 bucles separados, como si tuviera razón, está asignando el mismo valor a la posición i-ésima de su matriz por ejemplo:

matriz1 (i) = matriz2 (i) = matriz3 (i) = matriz4 (i)

En su ejemplo anterior, podría escribir algo como esto (en pseudocódigo):

for i = 0 to 3
   account1(i) = MyData
   account2(i) = MyData
   account3(i) = MyData
   account4(i) = MyData
next i

Creo que esto es más claro que intentar escribir un bucle para los nombres de las variables, especialmente para la cantidad de matrices que está manteniendo

Otra opción, que podría ser más apropiada si tiene muchas matrices, sería mantener una lista de matrices que luego se pueda iterar de manera bastante simple.

PseudoCode para esta opción:

for each array in listOfArrays
  for i = 0 to 3
    array(i) = MyData
  next i
next

Esto es definitivamente más claro que tratar de generar dinámicamente los nombres de las matrices, y también es más fácil de mantener

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top