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