الفهرسة والطول
الوصول إلى العناصر بأمان
الفهرسة والطول درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 4 دروس في المجموع.
القراءة حسب الفهرس
يمتلك كل عنصر في المصفوفة موضعًا يسمى الفهرس. وتقرأ قيمةً بكتابة الفهرس بين قوسين مربعين بعد اسم المصفوفة.
تبدأ الفهارس عند 0، لذلك يوجد العنصر الأول تمامًا عند الفهرس 0.
string[] days = { "Mon", "Tue", "Wed" };
Console.WriteLine(days[0]); // Monالعد بدءًا من الصفر
نظرًا إلى أن الفهارس تبدأ من 0، فإن العنصر الثاني يقع عند الفهرس 1، والثالث عند الفهرس 2.
قد يربك هذا العد بدءًا من الصفر المبتدئين، لذا تذكّروا: الفهرس = الموضع ناقص واحد.
string[] days = { "Mon", "Tue", "Wed" };
Console.WriteLine(days[1]); // Tue
Console.WriteLine(days[2]); // Wedتغيير عنصر
يمكنكم استبدال قيمة أي عنصر بتعيين قيمة جديدة إلى الفهرس الخاص به.
نستبدل هنا القيمة الموجودة عند الفهرس 1. لا يتغير طول المصفوفة، بل تتغير القيمة المخزنة فقط.
int[] nums = { 5, 6, 7 };
nums[1] = 99;
Console.WriteLine(nums[1]); // 99خاصية Length
تحتوي كل مصفوفة على خاصية Length تخبركم بعدد العناصر التي تحتوي عليها.
وهذا مفيد لأنكم لا تحتاجون إلى تذكّر الحجم بأنفسكم.
int[] nums = { 5, 6, 7, 8 };
Console.WriteLine(nums.Length); // 4العنصر الأخير
الفهرس الأخير الصالح هو دائمًا Length - 1، لأن العد يبدأ من 0.
يتيح لكم استخدام Length - 1 العثور على العنصر الأخير من دون تثبيت رقم معين في الشيفرة.
int[] nums = { 5, 6, 7, 8 };
Console.WriteLine(nums[nums.Length - 1]); // 8معامل الفهرسة من النهاية
توفّر C# اختصارًا للعد من النهاية باستخدام المعامل ^. يشير ^1 إلى العنصر الأخير، ويشير ^2 إلى العنصر قبل الأخير.
وهذه طريقة واضحة للوصول إلى النهاية من دون كتابة Length - 1.
int[] nums = { 5, 6, 7, 8 };
Console.WriteLine(nums[^1]); // 8برنامج كامل
يطبع هذا البرنامج الكامل العنصر الأول، والعنصر الأخير، والطول الإجمالي.
شغّلوه لمشاهدة ظهور القيم الثلاث كلها.
int[] nums = { 10, 20, 30 };
Console.WriteLine("First: " + nums[0]);
Console.WriteLine("Last: " + nums[nums.Length - 1]);
Console.WriteLine("Count: " + nums.Length);أخطاء تجاوز النطاق
إذا استخدمتم فهرسًا كبيرًا جدًا أو سالبًا، فإن C# تطرح الاستثناء IndexOutOfRangeException ويتعطل البرنامج.
بالنسبة إلى مصفوفة طولها 3، الفهارس الصالحة هي 0 و1 و2 فقط. أما الفهرس 3 فيتجاوز الحد بخطوة واحدة.
int[] nums = { 1, 2, 3 };
// nums[3] would throw IndexOutOfRangeException
Console.WriteLine(nums[2]); // safe: 3التحقق قبل الوصول
لتجنب حالات التعطل، تحقّقوا من أن الفهرس ضمن النطاق قبل استخدامه.
يجب أن يكون الفهرس الآمن أكبر من أو يساوي 0 وأصغر من Length.
int[] nums = { 1, 2, 3 };
int i = 5;
if (i >= 0 && i < nums.Length)
Console.WriteLine(nums[i]);
else
Console.WriteLine("Out of range");استخدام Length في العمليات الحسابية
نظرًا إلى أن Length عدد صحيح، يمكنكم استخدامه في العمليات الحسابية، مثل العثور على فهرس المنتصف.
نحسب هنا موضع مركز المصفوفة.
int[] nums = { 1, 2, 3, 4, 5 };
int mid = nums.Length / 2;
Console.WriteLine(nums[mid]); // 3Length للقراءة فقط
لا يمكنكم تغيير Length لتغيير حجم المصفوفة. إذ يكون حجم المصفوفات ثابتًا بعد إنشائها.
إذا احتجتم إلى حجم مختلف، فعليكم إنشاء مصفوفة جديدة. وتكون المجموعات مثل List<T> أفضل عندما يحتاج الحجم إلى الزيادة.
int[] nums = { 1, 2, 3 };
// nums.Length = 5; // error: read-only
Console.WriteLine(nums.Length); // 3تحقق سريع
اختبروا فهمكم للفَهارس والطول.
مراجعة
تعلّمتم قراءة العناصر وتغييرها باستخدام الفهرس، وأن الفهارس تبدأ من الصفر، وأن الفهرس الأخير هو Length - 1.
تحسب الخاصية Length عدد العناصر، ويعدّ المعامل ^ من النهاية، ويؤدي الخروج عن النطاق إلى طرح استثناء. ستتعلّمون بعد ذلك كيفية التكرار على كل عنصر.
الأسئلة الشائعة
هل درس «الفهرسة والطول» مجاني؟
نعم — نص درس «الفهرسة والطول» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 4 دروس في المجموع.
ماذا ستتعلم في «الفهرسة والطول»؟
الوصول إلى العناصر بأمان تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟
لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «الفهرسة والطول»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟
نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.