C# - Arrays
Arrays هي مجموعة
collection مخازن/متغيرات Variables تدعى elements ذات حجم
ثابت ومجموعة متتابعة من elements من نفس النوع DataType . وتستخدم الـ Arrays لتخزين مجموعة من
البيانات.
بدلا من التصريح عن المتغيرات، مثل number0، number1، و ...، وnumber99، نقوم بتعريف متغير Array مثل
أرقام [0]،
وأرقام [1]، و ...، وأرقام [99] لتمثيل المتغيرات. يتم الوصول لعنصر elementمعين
في array
عن طريق الفهرس
Index.
تعريف
مصفوفة Declaring Arrays:
لتعريف array
داخل C# يمكن استخدام الشكل التالي:
datatype[] arrayName;
- datatype تستخدم لتحديد نوع العنصر لتخزينه داخل الـ array.
- [ ] لتعريف ان المتغير من نوع Array وتستخدم لتحديد الـ Rank وهو لتحديد أبعاد المصفوفة.
- arrayName لنحديد اسم المصفوفة.
مثال,
double[] balance;
تهيئة المصفوفة Initializing
الاعلان عن مصفوفة لا يعني تهيئتها في
الذاكرة, عندما تتم تهيئة متغير مصفوفة يمكنك تحديد القيم إلى المصفوفة.
المصفوفة array
هي من النوع reference type لذلك تحتاج إلى استخدام
الكلمة new لإنشاء مثيل لل array.
مثال,
double[] balance = new double[10];
تعيين القيم إلى Assigning
Values to an Array
يمكنك تعيين قيم لعناصر المصفوفة Array باستخدام الرقم Index، مثل:
double[] balance = new double[10];
balance[0] = 9300.0;
يمكنك تعيين قيم لـ array في وقت الإعلان، مثل:
double[] balance = { 2340.0, 4523.69, 3421.0 };
يمكنك أيضا إنشاء وتهيئة المصفوفة Array، مثل:
int[] marks = new int[5] { 99, 98, 92,
97, 95 };
في الحالة التالية، يمكنك أيضا حذف حجم size المصفوفة، مثل:
int[] marks = new int[] { 99, 98, 92, 97,
95 };
يمكنك أيضا نسخ متغير مصفوفة arrayإلى متغير array آخر. في هذه الحالة، فإن كلا من الهدف والمصدر يشير إلى نفس موقع الذاكرة:
int[] degrees = new int[] { 60, 71, 80, 55, 16 };
int[] trgt = degrees;
عند إنشاء مصفوفة C#
array سوف يقوم مترجم اللغة C#
compiler
بتهيئة كل عنصر في المصفوفة إلى قيمة افتراضية اعتمادا على نوع الـ array. على سبيل المثال سيكون
لـ int array قيمة أفتراضية صفر.
الوصول إلى عناصر المصفوفة
تم الوصول إلى العنصر باسم المصفوفة و بالفهرس
Index. ويتم ذلك عن طريق وضع
فهرس العنصر بين قوسين مربع بعد اسم من الصفيف. على سبيل المثال:
double salary = balance[9];
مثال شامل, إنشاء برنامج ConsoleApplication:
using System;
namespace ArrayApplication
{
class MyArrayClass
{
static void Main(string[] args)
{
int[] n = new int[10]; /* n is an array of
10 integers */
int i, j;
for (i = 0; i < 10; i++)
{
n[i] = i + 100;
}
for (j = 0; j < 10; j++)
{
Console.WriteLine("Element[{0}]
= {1}", j, n[j]);
}
}
}
}
نتيجة:
Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109
استخدام foreach
Loop
using System;
namespace ArrayApplication
{
class MyArray
{
static void Main(string[] args)
{
int[] arr = new int[10];
arr[0] = 15;
arr[1] = 32;
arr[2] = 16;
arr[3] = 7;
arr[4] = 99;
arr[5] = 152;
arr[6] = 356;
arr[7] = 80;
arr[8] = 23;
arr[9] = 5;
int i = 0;
foreach (int Item in arr)
{
Console.WriteLine("Element[{0}]
{1}",i, Item);
i++;
}
}
}
}
نتيجة:
تفاصيل المصفوفات في C#
المصفوفات مهمة في C# ,تحتاج الكثير من التفاصيل. هناك بعض المفاهيم التالية هامة
التي تتعلق بالـ Array والتي ينبغي أن تكون واضحة لمبرمج
C#.
المفهوم
Concept
|
الوصف
Description
|
المصفوف متعدد الأبعاد
|
C# يدعم المصفوفات متعددة الأبعاد. أبسط
شكل من المصفوفة متعددة الأبعاد هي ثنائية الأبعاد.
|
المصفوفات
المسننه
Jagged
arrays |
مصفوفات من مصفوفات
|
تمرير Array إلى دوال functions
Passing arrays to functions |
يمكنك تمرير المصفوفة إلى الدالة عن طريق تحديد اسم المصفوفة دون فهرس
index.
|
Param arrays
|
ويستخدم هذا لتمرير عدد غير معروف
من المعلمات إلى دالة function.
|
Array Class
|
المصفوفة داخل System namespace, هو الكلاس الاساسي لكل المصفوفات وهو يوفر مختلف خصائص
properties وأساليب العمل methods مع المصفوفات.
|
ممكن برنامج يقوم بترتيب عناصر المصفوفة تصاعديا بحيث كل عنصر فيها اكبر من مجموع العناصر السابقة له
ردحذفclass Program
حذف{
static void Main()
{
int[] values = { 4, 7, 2, 0 };
Array.Sort(values);
foreach (int value in values)
{
Console.Write(value);
Console.Write(' ');
}
Console.WriteLine();
}
}
كيفيه عمل مصفوفه ترتيب عناصرها تصاعديا و تنازليا باستخدام for
ردحذف&foreach
char[] array = { 'z', 'a', 'b' };
حذفArray.Sort(array);
foreach (var c in array)
Console.WriteLine(c);
كود يظهر عدد مرات تكرار الرقم 1 ف مصفوفه من 1ل 100
ردحذفعاوز ادخل عناصر مصفوفة 2d وبعدين يتم تغيير العنصر الاول بالاخير
ردحذفوالثاني بقبل الاخير وهكذا
كيفيه ضرب مصفوفتين ووضع ناتج الضرب في مصفوفه جديده
ردحذفممكن برنامج يضرب مصفوفتان ويضع ناتج الضرب في مصفوفه تالته
ردحذفمصفوفة تقوم بجمع عددين
ردحذف