Menu
CoddyTech

نسخ المصفوفات

جزء من قسم الأساسيات في رحلة C# على Coddy. الدرس 58 من 70.

لنسخ عناصر من مصفوفة إلى أخرى، استخدم Array.Copy. تأخذ هذه الدالة خمس وسيطات:

Array.Copy(source, sourceIndex, destination, destinationIndex, length);

تأخذ length من العناصر من source، بدءًا من sourceIndex، وتكتبها في destination، بدءًا من destinationIndex. يجب أن تكون مصفوفة الوجهة موجودة مسبقًا وكبيرة بما يكفي.

الوسيط الأخير هو عدد: كم عنصرًا سيتم نسخه، وليس الموضع الذي يتوقف عنده النسخ.

int[] scores = {90, 75, 60, 85};
int[] firstTwo = new int[2];
Array.Copy(scores, 0, firstTwo, 0, 2);
// ستكون قيمة firstTwo هي {90, 75}

destinationIndex هو الموضع الذي ينتقل إليه أول عنصر منسوخ. يؤدي استخدام source.Length بوصفه العدد إلى نسخ المصفوفة بأكملها، مهما كان حجمها:

int[] source = {1, 2, 3};
int[] destination = new int[6];
Array.Copy(source, 0, destination, 3, source.Length);
// ستكون قيمة destination هي {0, 0, 0, 1, 2, 3}

لإضافة مصفوفة بعد أخرى، انسخ الثانية إلى الموضع الذي تنتهي عنده الأولى. هذا الموضع هو Length للمصفوفة الأولى:

int[] first = {1, 2};
int[] second = {7, 8, 9};
int[] all = new int[first.Length + second.Length];
Array.Copy(first, 0, all, 0, first.Length);
Array.Copy(second, 0, all, first.Length, second.Length);
// ستكون قيمة all هي {1, 2, 7, 8, 9}

عندما تبدأ كلتا المصفوفتين عند الفهرس 0، توجد صيغة أقصر، Array.Copy(source, destination, length):

int[] source = {4, 5, 6, 7};
int[] destination = new int[3];
Array.Copy(source, destination, 3);
// ستصبح destination هي {4, 5, 6}
challenge icon

التحدي

سهل

أنشئ دالة باسم AddToEnd تستقبل مصفوفة من السلاسل النصية وسلسلة نصية item. وتُرجع مصفوفة جديدة تحتوي على جميع عناصر المصفوفة بالترتيب نفسه، مع إضافة item في النهاية.

على سبيل المثال، تُرجع AddToEnd(new string[] {"a", "b", "c"}, "d") القيمة ["a", "b", "c", "d"].

استخدم Array.Copy() لنسخ العناصر إلى المصفوفة الجديدة.

تنسيق الإدخال (سطران):

  • السطر 1: عناصر المصفوفة مفصولة بفواصل (مثل a,b,c)
  • السطر 2: العنصر المراد إضافته (مثل d)

تنسيق الإخراج: عناصر المصفوفة الجديدة مفصولة بفاصلة ومسافة (مثل a, b, c, d)

جرّب بنفسك

using System;

public class Program {
    public static string[] AddToEnd(string[] arr, string item) {
        // اكتب الكود هنا
    }

    public static void Main(string[] args) {
        string[] arr = Console.ReadLine().Split(',');
        string item = Console.ReadLine();
        string[] result = AddToEnd(arr, item);
        Console.WriteLine(string.Join(", ", result));
    }
}
quiz iconاختبر نفسك

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

جميع دروس الأساسيات

تدرّب بنفسك: مترجم C# عبر الإنترنت