Вопрос

Я новичок в этом, поэтому извините, если мой вопрос задавался ранее. Я искал, но не смог найти или, возможно, узнать ответ. Я использую Visual Studio 2008 и создаю приложение в vb.net.

У меня есть 4 массива с именем: - account1 account2 account3 account4. Все они имеют 4 элемента. Я хочу назначить значения для элементов в массивах эффективным способом. Я думал, что два для следующих циклов сделают это. Мой псевдокод выглядит примерно так

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

Измените VB.Net для ответа 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

Другие советы

Вы должны создать многомерный массив вместо 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

Когда я читаю ваш пример кода, я не думаю, что вам нужно использовать 2 отдельных цикла, как будто я прав, вы присваиваете то же значение i-й позиции вашего массива например:

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