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