تمرين - تنفيذ عبارة foreach
لنفترض أنك تعمل في شركة تصنيع. تحتاج الشركة إلى إكمال مخزون مستودعك لتحديد عدد المنتجات الجاهزة للشحن. بالإضافة إلى العدد الإجمالي للمنتجات النهائية، تحتاج إلى الإبلاغ عن عدد المنتجات النهائية المخزنة في كل سلة فردية في مستودعك، إلى جانب الإجمالي الحالي. سيتم استخدام هذا الإجمالي قيد التشغيل لإنشاء سجل تدقيق حتى تتمكن من التحقق مرة متعددة من عملك وتحديد "الانكماش".
التكرار من خلال مصفوفة باستخدام foreach
foreach توفر العبارة طريقة بسيطة ونظيفة للتكرار من خلال عناصر الصفيف. تعالج العبارة foreach عناصر الصفيف في زيادة ترتيب الفهرس، بدءا من الفهرس 0 وتنتهي بطول الفهرس - 1. يستخدم متغيرا مؤقتا للاحتفاظ بقيمة عنصر الصفيف المقترن بالتكرار الحالي. سيقوم كل تكرار بتشغيل كتلة التعليمات البرمجية الموجودة أسفل foreach الإعلان.
إليك مثال بسيط:
string[] names = { "Rowena", "Robin", "Bao" };
foreach (string name in names)
{
Console.WriteLine(name);
}
أسفل الكلمة الرئيسية foreach، ستقوم كتلة التعليمة البرمجية التي تحتوي على العنصر Console.WriteLine(name); بتنفيذ كل عنصر من عناصر مصفوفة names مرة واحدة. نظراً لأن وقت تشغيل .NET يتكرر عبر كل عنصر من عناصر المصفوفة، يتم تعيين القيمة المخزنة في العنصر الحالي لمصفوفة names إلى المتغير المؤقت name لسهولة الوصول إليه داخل كتلة التعليمة البرمجية.
إذا قمت بتشغيل التعليمات البرمجية، فسترى النتيجة التالية.
Rowena
Robin
Bao
استخدم العبارة foreach لإنشاء مجموع جميع العناصر الموجودة في كل سلة من مستودعك.
إنشاء صفيف من int وتهيئته
تأكد من وجود ملف Program.cs فارغ مفتوح في Visual Studio Code.
إذا لزم الأمر، افتح Visual Studio Code، ثم أكمل الخطوات التالية لإعداد ملف Program.cs في المحرر:
في القائمة ملف ، حدد فتح مجلد.
استخدم مربع الحوار فتح مجلد للانتقال إلى المجلد CsharpProjects ثم فتحه.
في طريقة عرض Visual Studio Code EXPLORER، حدد Program.cs.
في قائمة Visual Studio Code Selection ، حدد Select All، ثم اضغط على مفتاح Delete.
لإنشاء صفيف من النوع
intالذي يخزن عدد المنتجات النهائية في كل سلة، أدخل التعليمات البرمجية التالية:int[] inventory = { 200, 450, 700, 175, 250 };
إضافة عبارة foreach للتكرار من خلال الصفيف
لإنشاء عبارة
foreachتتكرر من خلال كل عنصر منinventoryعناصر الصفيف، أدخل التعليمات البرمجية التالية:foreach (int items in inventory) { }لاحظ أن العبارة
foreachتعين مؤقتا قيمة عنصر الصفيف الحالي إلىintمتغير يسمىitems.تأكد من أن التعليمات البرمجية الخاصة بك تطابق ما يلي:
int[] inventory = { 200, 450, 700, 175, 250 }; foreach (int items in inventory) { }
إضافة متغير لجمع قيمة كل عنصر في الصفيف
ضع المؤشر على سطر التعليمات البرمجية الفارغة أعلى العبارة
foreach.للإعلان عن متغير جديد يمثل مجموع جميع المنتجات النهائية في المستودع الخاص بك، أدخل التعليمات البرمجية التالية:
int sum = 0;تأكد من إعلان المتغير خارج العبارة
foreach.ضع المؤشر داخل كتلة التعليمات البرمجية من العبارة
foreach.لإضافة القيمة الحالية المخزنة
itemsفيsumإلى المتغير، أدخل التعليمات البرمجية التالية:sum += items;تأكد من تطابق التعليمات البرمجية الخاصة بك مع ما يلي:
int[] inventory = { 200, 450, 700, 175, 250 }; int sum = 0; foreach (int items in inventory) { sum += items; }
عرض القيمة النهائية للمجموع
إنشاء سطر تعليمة برمجية فارغ أسفل كتلة التعليمات البرمجية من العبارة
foreach.للإبلاغ عن المجموع النهائي للعناصر في المخزون الخاص بك، أدخل التعليمات البرمجية التالية:
Console.WriteLine($"We have {sum} items in inventory.");تأكد من أن التعليمات البرمجية الخاصة بك تطابق ما يلي:
int[] inventory = { 200, 450, 700, 175, 250 }; int sum = 0; foreach (int items in inventory) { sum += items; } Console.WriteLine($"We have {sum} items in inventory.");في قائمة Visual Studio Code File ، انقر فوق Save.
في طريقة عرض EXPLORER، لفتح Terminal في موقع مجلد TestProject، انقر بزر الماوس الأيمن فوق TestProject، ثم حدد Open in Integrated Terminal.
في موجه الأوامر Terminal، اكتب dotnet run ثم اضغط على Enter.
We have 1775 items in inventory.
إنشاء متغير للاحتفاظ برقم الحاوية الحالي وعرض الإجمالي الحالي
للوفاء بالمتطلبات النهائية لمشروع الإبلاغ عن المخزون الخاص بك، ستحتاج إلى إنشاء متغير يحتوي على التكرار الحالي للبيان حتى تتمكن من foreach عرض سلة الأصناف وعدد العناصر النهائية في تلك الحاوية، إلى جانب الإجمالي الحالي لجميع عناصر الحاوية التي تم حسابها حتى الآن.
إنشاء سطر تعليمة برمجية فارغ أعلى العبارة
foreach.للإعلان عن
intالمتغير المسمىbinالذي تمت تهيئته إلى0، أدخل التعليمات البرمجية التالية:int bin = 0;ستستخدم
binلتخزين عدد السلة التي تتم معالجة مخزونها حاليا.foreachداخل كتلة التعليمات البرمجية، لزيادةbinفي كل مرة يتم فيها تنفيذ كتلة التعليمات البرمجية، أدخل التعليمات البرمجية التالية:bin++;لاحظ أنك تستخدم
++عامل التشغيل لزيادة قيمة المتغير بمقدار 1. هذا اختصار لbin = bin + 1.للإبلاغ عن رقم الحاوية وعدد المنتجات النهائية في الحاوية والإجمالي الحالي للمنتجات النهائية، أدخل التعليمات البرمجية التالية داخل كتلة التعليمات البرمجية
foreach، بعدbin++;:Console.WriteLine($"Bin {bin} = {items} items (Running total: {sum})");ستستخدم هذه التعليمة البرمجية متغير
binالعداد والمتغيرforeachالمؤقتitemsوالمتغير الخاص بكsumللإبلاغ عن الحالة الحالية للمخزون الخاص بك في رسالة منسقة بشكل جيد.تأكد من أن التعليمات البرمجية الخاصة بك تطابق ما يلي:
int[] inventory = { 200, 450, 700, 175, 250 }; int sum = 0; int bin = 0; foreach (int items in inventory) { sum += items; bin++; Console.WriteLine($"Bin {bin} = {items} items (Running total: {sum})"); } Console.WriteLine($"We have {sum} items in inventory.");احفظ التغييرات على ملف Program.cs، ثم قم بتشغيل التطبيق.
ينبغي أن تشاهد المخرج التالي:
Bin 1 = 200 items (Running total: 200) Bin 2 = 450 items (Running total: 650) Bin 3 = 700 items (Running total: 1350) Bin 4 = 175 items (Running total: 1525) Bin 5 = 250 items (Running total: 1775) We have 1775 items in inventory.
خلاصة
فيما يلي بعض الأشياء التي يجب تذكرها حول foreach العبارات والقيم الإضافية التي تعلمتها في هذه الوحدة:
- استخدم جملة
foreachللتكرار خلال كل عنصر في مصفوفة ما، وتنفيذ كتلة التعليمة البرمجية المرتبطة مرة واحدة لكل عنصر في المصفوفة. - تُعيّن جملة
foreachقيمة العنصر الحالي في المصفوفة لمتغير مؤقت، والذي يمكنك استخدامه في محتوى كتلة التعليمة البرمجية. - استخدم عامل الزيادة
++لإضافة 1 إلى قيمة المتغير الحالية.