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

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

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

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

ملاحظة: في لغة C#، يوجد نوعان من المصفوفات متعددة الأبعاد: المصفوفات المستطيلة (int[,]) والمصفوفات المتعرجة (int[][]). يغطي هذا الدرس المصفوفات المتعرجة، حيث يكون كل صف عبارة عن مصفوفة بحد ذاته.

أنشئ مصفوفة متعرجة (jagged array) تحتوي على 3 صفوف و4 أعمدة:

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

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

grid[1][2] = 42;

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

int value = grid[0][3];

بما أن الفهارس تبدأ من 0، فإن فهرس الصف 0 هو الصف الأول وفهرس العمود 3 هو العمود الرابع.

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

  • الصفوف: الفهرس من 0 إلى 2 (لمصفوفة مكونة من 3 صفوف — الصف الأول هو الفهرس 0، والثاني هو الفهرس 1، والثالث هو الفهرس 2)
  • الأعمدة: الفهرس من 0 إلى 3 (لمصفوفة مكونة من 4 أعمدة — العمود الأول هو الفهرس 0، والثاني هو الفهرس 1، وهكذا)
إذا حاولت الوصول إلى عنصر خارج هذه النطاقات (مثل grid[3][2])، فستحصل على IndexOutOfRangeException.
challenge icon

التحدي

متوسط

اكتب طريقة تسمى getElement تأخذ ثلاث وسائط:

  1. مصفوفة صحيحة ثنائية الأبعاد (int[][] matrix)
  2. فهرس الصف (int row)
  3. فهرس العمود (int col)

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

ورقة مرجعية

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

إنشاء مصفوفة ثنائية الأبعاد:

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

تعيين قيمة:

grid[1][2] = 42;

قراءة قيمة:

int value = grid[0][3];

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

جرّب بنفسك

public class GetElement
{
    public static int getElement(int[][] array, int row, int col)
    {
        // اكتب كودك هنا
    }
}
quiz iconاختبر نفسك

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

جميع دروس Logic & Flow