複数の配列をループする方法は?
質問
私はこれが初めてなので、私の質問が以前に聞かれたら申し訳ありません。私は検索しましたが、答えを見つけることができませんでした。 Visual Studio 2008を使用し、vb.netでアプリを作成しています。
次の4つのアレイがあります:-account1 account2 account3 account4。すべて4つの要素があります。 配列内の要素に効率的な方法で値を割り当てたい。次のループで2つのループを使用すると思いました。私の擬似コードは次のようになります
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
したがって、すべての配列のすべての要素が読み込まれ、個々の配列名ごとにfornextループを設定する必要はありません。どうすればこれを達成できますか。
希望するのに十分な情報を提供し、あなたが助けることができることを望みます。あらゆるアドバイスをありがとう。
解決
私が正しく理解しているのなら、どうして:
For i as integer = 0 to 3
account1(i) = "Account1"
account2(i) = "Account2"
account3(i) = "Account3"
account4(i) = "Account4"
Next
Qua の回答用にVB.Netを編集:
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
他のヒント
4つの配列の代わりに多次元配列を作成する必要があります。これにより、一般的に配列をループできます。
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
コード例を読んでいると、配列のi番目の位置に同じ値を割り当てているように、2つの別々のループを使用する必要はないと思います 例:
array1(i)= array2(i)= array3(i)= array4(i)
上記の例では、次のようなものを(擬似コードで)書くことができます。
for i = 0 to 3
account1(i) = MyData
account2(i) = MyData
account3(i) = MyData
account4(i) = MyData
next i
これは、特にメンテナンスしている配列の数について、変数名のループを作成するよりも明確だと思います
別のオプションは、多数の配列がある場合に適している可能性がありますが、配列のリストを維持し、それを単純に十分に反復することができます。
このオプションの擬似コード:
for each array in listOfArrays
for i = 0 to 3
array(i) = MyData
next i
next
これは、配列の名前を動的に生成しようとするよりも明確であり、保守性も高くなります