Come eseguire il loop tra più array?
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.
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