0Pricing
C# Academy · درس

المصفوفات متعددة الأبعاد

الشبكات والمصفوفات المتعرجة

المصفوفات متعددة الأبعاد درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 4 دروس في المجموع.

ما بعد الصف الواحد

كانت المصفوفات حتى الآن تتكون من سطر واحد من القيم. تخزن المصفوفة متعددة الأبعاد القيم في شبكة، مثل جدول بيانات يضم صفوفًا وأعمدة.

وتناسب هذه المصفوفات لوحات الألعاب والجداول والمصفوفات الرياضية.

التصريح عن مصفوفة ثنائية الأبعاد

تستخدم المصفوفة الثنائية الأبعاد فاصلة داخل الأقواس: [,]. وتحددون حجمين: عدد الصفوف وعدد الأعمدة.

تحتوي هذه الشبكة على صفين و3 أعمدة، ولذلك فهي تخزن 6 قيم.

int[,] grid = new int[2, 3];
Console.WriteLine(grid[0, 0]); // 0

الوصول إلى الخلايا

لقراءة خلية أو الكتابة فيها، حدّدوا فهرس الصف وفهرس العمود، وافصلوا بينهما بفاصلة.

يبدأ كلا الفهرسين من الصفر، تمامًا كما في المصفوفات أحادية الأبعاد.

int[,] grid = new int[2, 3];
grid[0, 1] = 7;
grid[1, 2] = 9;
Console.WriteLine(grid[1, 2]); // 9

تهيئة شبكة

يمكنكم تعبئة المصفوفة الثنائية الأبعاد عند إنشائها باستخدام الأقواس المتداخلة. تمثل كل مجموعة داخلية صفًا واحدًا.

يجب أن تحتوي جميع الصفوف على العدد نفسه من الأعمدة.

int[,] grid = { { 1, 2, 3 }, { 4, 5, 6 } };
Console.WriteLine(grid[1, 0]); // 4

الأسلوب GetLength

عند وجود بُعدين، تمنحكم Length العدد الإجمالي للخلايا. وللحصول على حجم بُعد واحد، استخدموا GetLength.

يمثل GetLength(0) عدد الصفوف، ويمثل GetLength(1) عدد الأعمدة.

int[,] grid = { { 1, 2, 3 }, { 4, 5, 6 } };
Console.WriteLine(grid.Length);        // 6
Console.WriteLine(grid.GetLength(0));  // 2
Console.WriteLine(grid.GetLength(1));  // 3

التكرار على شبكة

لزيارة كل خلية، استخدموا حلقة للصفوف داخل حلقة أخرى للأعمدة. تختار الحلقة الخارجية صفًا، وتمر الحلقة الداخلية عبر أعمدته.

استخدموا GetLength لتتوافق الحلقات مع الحجم الفعلي.

int[,] grid = { { 1, 2 }, { 3, 4 } };
for (int r = 0; r < grid.GetLength(0); r++)
{
    for (int c = 0; c < grid.GetLength(1); c++)
    {
        Console.WriteLine(grid[r, c]);
    }
}

برنامج شبكة كامل

ينشئ هذا البرنامج الكامل شبكة صغيرة، ثم يطبع كل قيمة مع صفها وعمودها.

شغّلوه لمشاهدة إدراج الخلايا الأربع كلها.

int[,] grid = { { 10, 20 }, { 30, 40 } };
for (int r = 0; r < grid.GetLength(0); r++)
{
    for (int c = 0; c < grid.GetLength(1); c++)
    {
        Console.WriteLine("[" + r + "," + c + "] = " + grid[r, c]);
    }
}

ثلاثة أبعاد

يمكنكم إضافة أبعاد أخرى باستخدام المزيد من الفواصل. تستخدم المصفوفة الثلاثية الأبعاد [,,] وثلاثة أحجام.

تخيّلوها كأنها مجموعة من الشبكات المتراصة. وهي أقل شيوعًا، لكنها تتبع القواعد نفسها.

int[,,] cube = new int[2, 2, 2];
cube[1, 1, 1] = 5;
Console.WriteLine(cube[1, 1, 1]); // 5

المصفوفات المتعرجة

المصفوفة المتعرجة هي مصفوفة من المصفوفات، وتُكتب [][]. وبخلاف الشبكة المستطيلة، يمكن أن يختلف طول كل صف.

يمكنكم الوصول إليها باستخدام زوجين منفصلين من الأقواس.

int[][] jagged = new int[2][];
jagged[0] = new int[] { 1, 2 };
jagged[1] = new int[] { 3, 4, 5 };
Console.WriteLine(jagged[1][2]); // 5

المصفوفات المستطيلة في مقابل المتعرجة

تحتوي المصفوفة المستطيلة [,] دائمًا على صفوف متساوية الطول، وتخزن البيانات بكفاءة. أما المصفوفة المتعرجة [][] فتسمح باختلاف أطوال الصفوف.

اختاروا المصفوفة المستطيلة للجداول الحقيقية، والمتعرجة عندما تختلف أطوال الصفوف بطبيعتها.

int[][] rows = { new[] { 1 }, new[] { 2, 3, 4 } };
Console.WriteLine(rows[0].Length); // 1
Console.WriteLine(rows[1].Length); // 3

جمع قيم شبكة

يمكنكم حساب إجمالي كل قيمة في شبكة بإضافة كل خلية داخل حلقات متداخلة.

يمكن توسيع هذا النمط ليتعامل مع أي عدد من الصفوف والأعمدة.

int[,] grid = { { 1, 2 }, { 3, 4 } };
int total = 0;
foreach (int v in grid)
{
    total += v;
}
Console.WriteLine(total); // 10

تحقق سريع

اختبروا معرفتكم بالمصفوفات متعددة الأبعاد.

مراجعة

تعلّمتم إنشاء الشبكات باستخدام [,]، والوصول إلى الخلايا باستخدام فهارس الصفوف والأعمدة، وقياسها باستخدام GetLength.

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

الأسئلة الشائعة

هل درس «المصفوفات متعددة الأبعاد» مجاني؟

نعم — نص درس «المصفوفات متعددة الأبعاد» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 4 دروس في المجموع.

ماذا ستتعلم في «المصفوفات متعددة الأبعاد»؟

الشبكات والمصفوفات المتعرجة تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟

لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «المصفوفات متعددة الأبعاد»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟

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

جميع الدروس في هذه الدورة

  1. التصريح بالمصفوفات
  2. الفهرسة والطول
  3. التكرار على المصفوفات
  4. المصفوفات متعددة الأبعاد
← العودة إلى C# Academy