نسخ المصفوفات
جزء من قسم الأساسيات في رحلة 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}التحدي
سهلأنشئ دالة باسم 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));
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمةالزيادة والنقصانالزيادة والنقصان اللاحقاختصارات العمليات الحسابية7أساسيات الإدخال والإخراج (Basic IO)
الإخراج الأساسيتضمين النصوص (String Interpolation)قراءة المدخلاتالتحليل (Parse)مراجعة - حتى 120مراجعة - True أو False5المعاملات - الجزء الثاني
معاملات المقارنةالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالث11أساسيات المصفوفات
التصريح عن المصفوفاتالوصول إلى العناصرتعديل المصفوفاتنسخ المصفوفاتدوال المصفوفاتمراجعة - مصفوفة حاصل الضربتعديل المراجعة - المصفوفة المعكوسةتدرّب بنفسك: مترجم C# عبر الإنترنت