質問

私はこれが初めてなので、私の質問が以前に聞かれたら申し訳ありません。私は検索しましたが、答えを見つけることができませんでした。 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

これは、配列の名前を動的に生成しようとするよりも明確であり、保守性も高くなります

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top