0Pricing
C# Academy · درس

عنصر النشر

ادمجوا المجموعات باستخدام عامل النشر

عنصر النشر درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 4 دروس في المجموع.

عنصر النشر ..

داخل تعبير المجموعة، يُدرج عنصر النشر .. محتويات مجموعة أخرى مباشرةً. وهذه هي الطريقة التي تدمج بها التسلسلات بصورة تصريحية.

using System;

int[] a = [1, 2, 3];
int[] b = [4, 5, 6];
int[] all = [..a, ..b];
Console.WriteLine(string.Join(",", all)); // 1,2,3,4,5,6

مزج عناصر النشر والعناصر المفردة

يمكنك إدراج عناصر النشر بين القيم الفردية بحرية، مع الحفاظ على الترتيب.

using System;

int[] middle = [2, 3, 4];
int[] result = [1, ..middle, 5];
Console.WriteLine(string.Join(",", result)); // 1,2,3,4,5

الإضافة في البداية والنهاية

تجعل عناصر النشر عملية «الإضافة إلى البداية» أو «الإضافة إلى النهاية» أمرًا بسيطًا، إذ تنتج مجموعة جديدة بدلًا من تعديل المجموعة الأصلية.

using System;

int[] core = [10, 20, 30];
int[] withHead = [0, ..core];
int[] withTail = [..core, 40];
Console.WriteLine(string.Join(",", withHead)); // 0,10,20,30
Console.WriteLine(string.Join(",", withTail)); // 10,20,30,40

النشر من مصادر متعددة

يمكن نشر أي عدد من المجموعات داخل مجموعة واحدة. وهذا يضم عدة قوائم في تعبير واحد.

using System;
using System.Collections.Generic;

List<string> x = ["a", "b"];
List<string> y = ["c"];
List<string> z = ["d", "e"];
List<string> merged = [..x, ..y, ..z];
Console.WriteLine(string.Join(",", merged)); // a,b,c,d,e

النشر من أنواع مجموعات مختلفة

يمكن أن يكون مصدر النشر أي كائن قابل للتعداد: مصفوفة داخل قائمة، أو قائمة داخل مصفوفة، وهكذا. ويحدد النوع الهدف النتيجة.

using System;
using System.Collections.Generic;

int[] arr = [1, 2];
List<int> list = [3, 4];
int[] combined = [..arr, ..list];
Console.WriteLine(string.Join(",", combined)); // 1,2,3,4

نشر IEnumerable

يمكن أيضًا نشر التسلسلات الكسولة الناتجة من LINQ؛ إذ يجري تعدادها عند إنشاء المجموعة الجديدة.

using System;
using System.Linq;

var evens = Enumerable.Range(1, 6).Where(n => n % 2 == 0);
int[] result = [0, ..evens];
Console.WriteLine(string.Join(",", result)); // 0,2,4,6

بناء المجموعات تدريجيًا

تُعد عناصر النشر مناسبة جدًا للإنشاء التدريجي من دون استدعاءات Add الإجرائية.

using System;

int[] baseline = [1, 2, 3];
int[] extra = [4, 5];
int[] full = [..baseline, ..extra, 6];
Console.WriteLine(full.Length); // 6

الترتيب مهم

يتبع التسلسل الناتج الترتيب النصي للعناصر وعناصر النشر، لذا يؤدي تبديل عناصر النشر إلى تغيير الناتج.

using System;

int[] a = [1, 2];
int[] b = [3, 4];
Console.WriteLine(string.Join(",", [..a, ..b])); // 1,2,3,4
Console.WriteLine(string.Join(",", [..b, ..a])); // 3,4,1,2

عناصر النشر في مقابل Concat

غالبًا ما تحل عناصر النشر محل Concat + ToArray. فهي أوضح عند القراءة، وتتيح للمترجم تحديد حجم النتيجة بكفاءة.

using System;
using System.Linq;

int[] a = [1, 2];
int[] b = [3, 4];
// old
int[] oldWay = a.Concat(b).ToArray();
// new
int[] newWay = [..a, ..b];
Console.WriteLine(oldWay.SequenceEqual(newWay)); // True

النشر داخل Span

بما أن الهدف يمكن أن يكون Span، يمكنك دمج البيانات مع احتمال تخصيصها على المكدس في المسارات الحساسة للأداء.

using System;

ReadOnlySpan<int> head = [1, 2];
ReadOnlySpan<int> tail = [3, 4];
int[] joined = [..head, ..tail];
Console.WriteLine(string.Join(",", joined)); // 1,2,3,4

دمج عملي

نُدمج هنا الإعدادات الافتراضية مع التجاوزات في تعبير واحد، مع إبقاء القيم اللاحقة بعد القيم الافتراضية.

using System;

string[] defaults = ["--verbose", "--color"];
string[] userArgs = ["--output=log.txt"];
string[] finalArgs = [..defaults, ..userArgs];
Console.WriteLine(string.Join(" ", finalArgs));

تحقق سريع

تحقق من فهمك لعنصر النشر.

مراجعة

لقد تعلمت عنصر النشر .. داخل تعبيرات المجموعات.

  • [..a, ..b] يضم المجموعات.
  • تمتزج عناصر النشر مع العناصر المفردة وتحافظ على الترتيب.
  • يمكن أن تكون المصادر مصفوفات أو قوائم أو Span أو أي IEnumerable.
  • وهو بديل أوضح عن Concat().ToArray().

الأسئلة الشائعة

هل درس «عنصر النشر» مجاني؟

نعم — نص درس «عنصر النشر» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. صيغة تعبيرات المجموعات
  2. عنصر النشر
  3. تحديد نوع المجموعات وفقًا للهدف
  4. منشئو المجموعات
← العودة إلى C# Academy