English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل أساسي C#

دليل متقدم C#

موجه C# (OOP)

نظام الأسنان في C#

نظام الأسنان هو نظام من الأنظمة. نظام الأسنان يخزن الأنظمة وليس القيم المكتوبة.

يتم تثبيت نظام الأسنان باستخدام زوجين من الدوائر [] []، الدائرة الأولى تحدد حجم النظام، الدائرة الثانية تحدد حجم الأنظمة التي سيتم تخزينها.

في هذا المثال، يتم إعلان نظام الأسنان.

int[][] jArray1 = new int[2][]; // يمكن أن يحتوي على أقصى عدد من اثنين من الأنظمة الواحدة 
int[][,] jArray2 = new int[3][,]; // يمكن أن يحتوي على ثلاثة أنظمة مرتبطة

في هذا المثال، يمكن لتجميع jArray1 تخزين أقصى عدد من اثنين من الأنظمة الواحدة.

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

يمكنك أيضًا تعريف متجه البتات عند التسمية، مثلما يلي.

int[][] jArray = new int[2][]{
                new int[3]{1, 2, 3},
                new int[4]{4, 5, 6, 7}
            };
jArray[0][0]; //يعود 1
jArray[0][1]; //يعود 2
jArray[0][2]; //يعود 3
jArray[1][0]; //يعود 4
jArray[1][1]; //يعود 5
jArray[1][2]; //يعود 6
jArray[1][3]; //يعود 7

يمكنك استخدام حلقتين for لاستكشاف متجه البتات، مثلما يلي.

int[][] jArray = new int[2][]{
                new int[3]{1, 2, 3},
                new int[4]{4, 5, 6, 7}
            };
for(int i=0; i<jArray.Length; i++)
{
	for(int j=0; j < (jArray[i]).Length; j++)
		Console.WriteLine(jArray[i][j]);
}

السلسلة المتجهة التالية تحوي مصفوفات ثنائية، حيث يمثل البتات الثاني مصفوفة ثنائية.

int[][,] jArray = new int[2][,];
jArray[0] = new int[3, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 } };
jArray[1] = new int[2, 2] { { 7, 8 }, { 9, 10 } }; 
jArray[0][1, 1]; //يعود 4
                                             
jArray[1][1, 0]; //يعود 9
                                             
jArray[1][1, 1]; //يعود 10

إذا أضفتي زاوية أخرى، فإنها تصبح مصفوفة مصفوفات.

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

في مثال الماتريس المتشابكة أعلاه، ثلاثة أقواس مربعة [][][] تشير إلى ماتريس داخل ماتريس. لذلك، intJaggedArray سيكون يحتوي على عناصرين، مما يعني مجموعتين. الآن، يحتوي كل مجموعة على ماتريس (ماتريس أحادية الأبعاد). يشير intJaggedArray[0][0][0] إلى العنصر الأول في الماتريس الداخلية الأولى. يشير intJaggedArray[1][0][2] إلى العنصر الثالث في الماتريس الداخلية الثانية. يوضح الشكل أدناه ذلك.

ماتريس متقطعة