Domanda

Sono nuovo a questo, quindi mi dispiace se la mia domanda è stata posta prima. Ho cercato ma non sono stato in grado di trovare, o forse riconoscere, una risposta. Sto usando Visual Studio 2008 e sto creando un'app in vb.net.

Ho 4 matrici nominate: - account1 account2 account3 account4. Hanno tutti 4 elementi. Voglio assegnare i valori agli elementi nelle matrici in modo efficiente. Ho pensato che due per i prossimi loop lo avrebbero fatto. Il mio pseudo codice assomiglia a questo

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 quindi tutti gli elementi di tutti gli array sono popolati senza che io debba impostare un ciclo fornext per ogni singolo nome di array. Come posso raggiungere questo obiettivo, per favore.

Spero di aver fornito abbastanza informazioni per essere utile e che tu possa aiutarti. Grazie per tutti e tutti i consigli.

È stato utile?

Soluzione

Se capisco correttamente, perché no:

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

Modifica VB.Net per la risposta di 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

Altri suggerimenti

Dovresti creare un array multidimensionale invece di 4 array, che ti consentirebbe di scorrere in modo generico attraverso gli array.

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

Mentre leggo il tuo esempio di codice, non penso che tu debba usare 2 loop separati, come se avessi ragione, stai assegnando lo stesso valore alla sua posizione del tuo array ad esempio:

array1 (i) = array2 (i) = array3 (i) = array4 (i)

Nel tuo esempio sopra potresti scrivere qualcosa del genere (in pseudocodice):

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

Penso che sia più chiaro che cercare di scrivere un ciclo per i nomi delle variabili, in particolare per il numero di array che si stanno mantenendo

Un'altra opzione, che potrebbe essere più appropriata se si hanno molte matrici, sarebbe quella di mantenere un elenco di matrici che possono essere ripetute in modo abbastanza semplice.

PseudoCode per questa opzione:

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

Questo è decisamente più chiaro che cercare di generare dinamicamente i nomi degli array, e anche più gestibile

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top