Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

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

جزء من قسم Logic & Flow في رحلة C# على Coddy — الدرس 2 من 66.

يمكن إنشاء مصفوفة ثنائية الأبعاد (2D array) في لغة C# باستخدام المصفوفات المتعرجة (jagged arrays)، وهي عبارة عن مصفوفات من المصفوفات، مما يسمح لك بتخزين البيانات في هيكل يشبه الشبكة.

لإنشاء مصفوفة متعرجة (jagged array) من الأعداد الصحيحة بـ 3 صفوف و 4 أعمدة:

int[][] grid = new int[3][];
grid[0] = new int[4];
grid[1] = new int[4];
grid[2] = new int[4];

يقوم الكود أعلاه بإنشاء مصفوفة ثنائية الأبعاد تبدو كالتالي (تمت تهيئة جميع العناصر إلى 0):

[0, 0, 0, 0]
[0, 0, 0, 0]
[0, 0, 0, 0]

تهيئة مصفوفة متعرجة (jagged array) بالقيم:

int[][] matrix = new int[2][];
matrix[0] = new int[] {1, 2, 3};
matrix[1] = new int[] {4, 5, 6};

يؤدي هذا إلى إنشاء مصفوفة ثنائية الأبعاد تتكون من صفين و3 أعمدة، وتحتوي على القيم التالية:

[1, 2, 3]
[4, 5, 6]

للحصول على عدد الصفوف والأعمدة:

int rows = matrix.Length;           // يعيد 2
int columns = matrix[0].Length;     // يعيد 3 (للصف الأول)

يتطلب الوصول إلى العناصر في مصفوفة ثنائية الأبعاد فهرسين: أحدهما للصف والآخر للعمود.

تعيين قيمة لموقع محدد (الصف 1، العمود 2):

grid[1][2] = 42;

قراءة قيمة من موضع محدد (الصف 0، العمود 3):

int value = grid[0][3];

تذكر أن فهارس المصفوفة تبدأ من 0، لذا فإن النطاقات الصالحة هي:

  • الصفوف: من 0 إلى 2 (لمصفوفة مكونة من 3 صفوف)
  • الأعمدة: من 0 إلى 3 (لمصفوفة مكونة من 4 أعمدة)

إذا حاولت الوصول إلى عنصر خارج هذه النطاقات (مثل grid[3][2])، فستحصل على IndexOutOfRangeException.

ورقة مرجعية

إنشاء مصفوفة متعرجة (مصفوفة ثنائية الأبعاد) في C#:

int[][] grid = new int[3][];
grid[0] = new int[4];
grid[1] = new int[4];
grid[2] = new int[4];

التهيئة بالقيم:

int[][] matrix = new int[2][];
matrix[0] = new int[] {1, 2, 3};
matrix[1] = new int[] {4, 5, 6};

الحصول على الأبعاد:

int rows = matrix.Length;           // عدد الصفوف
int columns = matrix[0].Length;     // عدد الأعمدة في الصف الأول

الوصول إلى العناصر باستخدام فهرسين [row][column]:

grid[1][2] = 42;        // تعيين قيمة
int value = grid[0][3]; // قراءة قيمة

تبدأ فهارس المصفوفة من 0. يؤدي الوصول إلى فهارس خارج النطاق إلى حدوث IndexOutOfRangeException.

جرّب بنفسك

لا يتضمّن هذا الدرس تحدّيًا برمجيًا.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow