المصفوفات مقابل القوائم: مقارنة الاستخدام في لغة C#

Almsfwfat Mqabl Alqwaym Mqarnt Alastkhdam Fy Lght C



المصفوفة في C# عبارة عن مجموعة من العناصر ذات أنواع بيانات متطابقة وحجم محدد محدد. وهو يمثل جزءًا مجاورًا من الذاكرة حيث يتم حفظ العناصر. باستخدام فهرسها، توفر المصفوفات في C# وصولاً عشوائيًا سريعًا وسهلاً إلى أعضائها. القائمة عبارة عن بنية بيانات ديناميكية في لغة برمجة C# تمثل مجموعة من المكونات المكتوبة بشكل متماثل. على عكس المصفوفات، يمكن للقوائم أن تنمو أو تتقلص في الحجم ديناميكيًا مما يسمح بإضافة العناصر وإزالتها وتعديلها بكفاءة. يتم تناول أوجه التشابه والاختلاف بين صفائف C# وقوائم C# في هذه المقالة.

تصريح:

يتم الإعلان عن المصفوفات باستخدام 'type[] ArrayName;' بناء الجملة حيث يشير النوع إلى نوع الأعضاء في مجموعة المصفوفة، و'ArrName' هو العنوان الذي تم تعيينه للمصفوفة. يُشار إلى إعلان المصفوفة بأقواس مربعة [].

يكتب [ ] اسم الصفيف = نوع جديد [ ] ;

يتم الإعلان عن القوائم باستخدام 'List LsName;' بناء الجملة حيث يمثل النوع نوع بيانات العناصر الموجودة في القائمة، و'LsName' هو الاسم الذي يُعطى للقائمة. تشير الأقواس الزاوية إلى أنه إعلان نوع عام.







قائمة < يكتب > اسم القائمة = قائمة جديدة < يكتب > ( ) ;

التهيئة:

تستخدم المصفوفات الأقواس المتعرجة {} لإحاطة القيم، بينما تستخدم القوائم مُنشئ القائمة الجديد متبوعًا بالأقواس المتعرجة {} لإحاطة القيم.



يكتب [ ] اسم الصفيف = { الإصدار 1 , v2 , v3 , ... } ;

قائمة < يكتب > اسم القائمة = قائمة جديدة < يكتب > { الإصدار 1 , v2 , v3 , ... } ;

إضافة القيم:

من المهم أن تتذكر أن مصفوفات C# تمتلك حجمًا محددًا. إذا كان حجمًا مختلفًا مطلوبًا، فيجب إنشاء مصفوفة جديدة 'newArr' بالحجم المطلوب (الطول الحالي + عدد القيم الجديدة). أضف المصفوفة الأصلية 'OrgArr' إلى المصفوفة الجديدة وقم بتعيين القيم الجديدة للمواضع الجديدة في المصفوفة الجديدة وقم بتحديث المرجع إلى المصفوفة الجديدة.



مجموعة مصفوفة. ينسخ ( OrgArr , newArr , OrgArr. طول ) ;

newArr [ OrgArr. طول ] = 14 ; // قيمة جديدة

newArr [ OrgArr. طول + 1 ] = 2 ; // قيمة جديدة

OrgArr = newArr ; // تحديث المرجع int[] NewArr = new int[OrgArr.Length + 2];

توفر القوائم المرونة من حيث إدارة الحجم. عند تهيئة القائمة، فإنها تبدأ بسعة أولية، ولكنها يمكن أن تتوسع تلقائيًا مع إضافة المزيد من العناصر. تسمح إمكانية تغيير الحجم الديناميكي هذه للقوائم بالتكيف مع المتطلبات المتغيرة. توفر قوائم C# وظيفة Add() لإضافة القيم إلى القائمة. إليك كيفية إضافة قيم إلى قائمة C#:





المصفوفات مقابل القوائم : مقارنة الاستخدام في C #

الوصول إلى القيم

يتم الوصول إلى القيم الموجودة في أرقام المصفوفة باستخدام رمز الفهرس []، أي باستخدام رقم الفهرس الموجود بين قوسين ويتم حفظه في متغير آخر.

عنصر النوع = اسم الصفيف [ فِهرِس ] ;

للوصول إلى القيم الموجودة في قائمة C#، يمكنك أيضًا استخدام رمز الفهرس [] مع موضع الفهرس المطلوب المشابه للمصفوفات.



عنصر النوع = اسم القائمة [ فِهرِس ] ;

إزالة القيم

المصفوفات لها طول محدد. لذلك، لإزالة العناصر، يجب إنشاء مصفوفة جديدة بحجم أقل، ويجب نسخ العناصر الموجودة. يمكن القيام بذلك عن طريق استخدام وظيفة Array.Copy() كما هو موضح في قسم 'إضافة القيم'. في قوائم C#، تكون إزالة القيم أبسط بكثير وأكثر سهولة. توفر فئة List طريقة 'إزالة' تسمح لك بإزالة قيمة معينة من القائمة.

اسم القائمة. يزيل ( عنصر ) ;

عد القيم

لحساب القيم في مصفوفة C#، يمكنك استخدام سمة طول المصفوفة. الخاصية length تعطيك العدد الإجمالي للقيم في المصفوفة.

كثافة العمليات عدد = اسم المصفوفة. طول ;

لحساب القيم في قائمة C#، يمكنك استخدام ميزة 'العد' الخاصة بالقائمة. يتم أيضًا إرجاع إجمالي كمية العناصر الموجودة حاليًا في القائمة بواسطة السمة 'count'.

كثافة العمليات عدد = اسم القائمة. عدد ;

تكرار القيم

للتكرار على القيم في مصفوفة C#، يمكنك استخدام حلقة 'for' مع طول المصفوفة كشرط للحلقة.

ل ( كثافة العمليات أنا = 0 ; أنا < اسم الصفيف. طول ; أنا ++ ) {

اكتب ه = اسم المصفوفة [ أنا ] ;

وحدة التحكم. خط الكتابة ( إنها ) ;

}

للتكرار على القيم الموجودة في قائمة C#، يمكنك استخدام حلقة 'foreach' لأنها تبسط عملية التكرار عن طريق التكرار تلقائيًا على العناصر.

com.foreach ( اكتب e في listName ) {

وحدة التحكم. خط الكتابة ( إنها ) ;

}

مثال 1: مصفوفات C#

يعلن الكود المعطى عن مصفوفة أعداد صحيحة تسمى 'Arr' وتهيئها بطول 5 ويعين القيم لعناصرها. القيم المخصصة لعناصر المصفوفة هي 11، 12، 13، 14، و15. ثم يستمر الكود في عرض عناصر المصفوفة باستخدام حلقة 'for'. يتم عرض كل مكون على سطر مميز باستخدام طريقة Console.WriteLine().

بعد عرض العناصر الأصلية، يقوم الكود بتعديل العنصر الموجود في الفهرس 2 عن طريق تعيينه بقيمة جديدة تبلغ 10. بعد ذلك، يعرض الكود المصفوفة المعدلة عن طريق التكرار عبر العناصر مرة أخرى باستخدام حلقة 'for'. وأخيرًا، يعرض الكود العدد الإجمالي للقيم الموجودة في المصفوفة باستخدام خاصية 'Arr.Length' التي تعطي طول المصفوفة.

باستخدام النظام ;

دمية الطبقة {

ثابتة فارغ رئيسي ( ) {

كثافة العمليات [ ] آر = جديد كثافة العمليات [ 5 ] { أحد عشر , 12 , 13 , 14 , خمسة عشر } ;

وحدة التحكم. خط الكتابة ( 'عناصر:' ) ;

ل ( كثافة العمليات أنا = 0 ; أنا < آر. طول ; أنا ++ )

{

وحدة التحكم. خط الكتابة ( آر [ أنا ] ) ;

}

آر [ 2 ] = 10 ;

وحدة التحكم. خط الكتابة ( 'المصفوفة المعدلة:' ) ;

ل ( كثافة العمليات أنا = 0 ; أنا < آر. طول ; أنا ++ )

{

وحدة التحكم. خط الكتابة ( آر [ أنا ] ) ;

}

وحدة التحكم. خط الكتابة ( 'عدد العناصر:' + آر. طول ) ;

}

}

مثال 2: قوائم C#

يوضح الكود التالي استخدام قائمة C# لتخزين ومعالجة مجموعة من الأعداد الصحيحة. أولاً، يقوم الكود بتهيئة قائمة تسمى 'Arr' بخمسة أعداد صحيحة: 11 و12 و13 و14 و15. ويتم تحقيق ذلك باستخدام فئة List ومنشئها جنبًا إلى جنب مع بناء جملة المُهيئ.

بعد ذلك، يقوم البرنامج بطباعة رسالة 'العناصر:' ويستمر في التكرار على كل عنصر في القائمة باستخدام حلقة 'foreach'. أثناء كل تكرار، تتم طباعة العنصر الحالي إلى وحدة التحكم باستخدام طريقة Console.WriteLine().

بعد ذلك، يقوم الكود بتعديل القيمة في الفهرس 2 من القائمة عن طريق تعيينها بقيمة 10 (Arr[2] = 10). يغير هذا السطر العنصر الثالث في القائمة من 13 إلى 10. بعد التعديل، يقوم البرنامج مرة أخرى بطباعة رسالة 'القائمة المعدلة:' ويكررها على القائمة المحدثة، ويطبع كل عنصر على وحدة التحكم. يعرض الكود بعد ذلك عدد القيم في القائمة باستخدام 'Arr.Count'. تقوم هذه الخاصية بإرجاع عدد العناصر الموجودة في القائمة والتي، في السيناريو التالي، تكون 5.

وأخيرًا، يقوم الكود بإزالة العنصر ذو القيمة 4 من القائمة باستخدام طريقة Arr.Remove(4). تبحث هذه الطريقة عن القيمة المحددة في القائمة وتزيل ظهورها الأول. وأخيرًا، يقوم البرنامج بطباعة رسالة 'القائمة بعد الإزالة:' ويتكرر فوق القائمة مرة أخرى، ويعرض كل عنصر متبقي بعد عملية الإزالة.

باستخدام النظام ;

باستخدام النظام. المجموعات . نوعي ;

دمية الطبقة {

ثابتة فارغ رئيسي ( ) {

قائمة < كثافة العمليات > آر = قائمة جديدة < كثافة العمليات > ( ) { أحد عشر , 12 , 13 , 14 , خمسة عشر } ;

وحدة التحكم. خط الكتابة ( 'عناصر:' ) ;

com.foreach ( كثافة العمليات ن في آر )

{

وحدة التحكم. خط الكتابة ( ن ) ;

}

آر [ 2 ] = 10 ;

وحدة التحكم. خط الكتابة ( 'القائمة المعدلة:' ) ;

com.foreach ( كثافة العمليات ن في آر )

{

وحدة التحكم. خط الكتابة ( ن ) ;

}

وحدة التحكم. خط الكتابة ( 'عدد العناصر:' + آر. عدد ) ;

آر. يزيل ( 4 ) ;

وحدة التحكم. خط الكتابة ( 'القائمة بعد الإزالة:' ) ;

com.foreach ( كثافة العمليات ن في آر )

{

وحدة التحكم. خط الكتابة ( ن ) ;

}

}

}

خاتمة

يغطي هذا الدليل الاختلافات النحوية الأساسية بين مصفوفات C# وقوائم C#. المصفوفات لها طول ثابت ويمكن الوصول إليها عن طريق الفهرس، في حين أن القوائم ذات حجم ديناميكي وتوفر طرقًا إضافية لإضافة العناصر وإزالتها. إلى جانب ذلك، قمنا بتوفير برامج قائمة C# التي تعرض الإعلان والتهيئة والوصول إلى العناصر وتعديلها وإحصاءها وإضافتها.