سؤال

أنا جديدة على هذا ، اسفة اذا سؤالي تم طرحها من قبل.لقد بحثت ولكن لم تكن قادرة على العثور عليها ، أو ربما تتعرف على الجواب.أنا باستخدام 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 بالنسبة غنى عنه's الجواب:

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 المصفوفات ، التي من شأنها أن تسمح لك حلقة genericly من خلال المصفوفات.

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 حلقات منفصلة ، كما إذا أنا أنت على حق تعيين نفس قيمة ith موقف الصفيف الخاص بك على سبيل المثال:

array1(ط) = array2(ط) = array3(ط) = array4(أنا)

في المثال أعلاه يمكن أن تكتب شيئا مثل هذا (في شبة الكود):

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