LINQ Append Method في C#

شرح دالة Append() في LINQ

في هذا الدرس، سنتعرّف على كيفية استخدام دالة Append() لإضافة عنصر واحد إلى نهاية تسلسل من النوع IEnumerable<T>، دون التأثير على التسلسل الأصلي.

تم تقديم الدالة في .NET Core 3.0 وهي متوفرة في .NET 5 وما بعده.


الصيغة العامة:


var result = source.Append(element);
  • source: تسلسل البيانات الأساسي من النوع IEnumerable<T>.
  • element: العنصر الذي سيتم إضافته في النهاية.
  • result: تسلسل جديد يحتوي على عناصر source بالإضافة إلى element.


مثال عملي:


List<string> names = new List<string> { "Mahmoud", "Sara", "Alaa" };

var result = names.Append("Noor");

foreach (var name in result)
{
    Console.WriteLine(name);
}


النتيجة:


Mahmoud  
Sara  
Alaa  
Noor


ملاحظات هامة:

  • Append() لا تُعدّل المصدر الأصلي، بل تُنشئ تسلسلًا جديدًا.
  • لتحويل الناتج إلى List<T>، استخدم ToList():

var updatedList = names.Append("Noor").ToList();


مثال باستخدام أعداد صحيحة:


IEnumerable<int> numbers = new List<int> { 1, 2, 3 };

var result = numbers.Append(4);

foreach (var num in result)
{
    Console.WriteLine(num);
}


النتيجة:


1  
2  
3  
4



الفرق بين Append() و Add():

الجانب Append() Add() (على List)
يشتغل مع IEnumerable<T> List<T> فقط
يؤثر على الأصل؟ ❌ لا ✅ نعم
كم عنصر؟ عنصر واحد فقط يمكن أكثر من عنصر
التنفيذ مؤجل (Deferred) فوري (Immediate)


استخدام عملي:


var baseQuery = GetData();

if (addPlaceholder)
{
    baseQuery = baseQuery.Append("Select an option...");
}

هذا المثال يوضّح كيف يمكن استخدام Append() لإضافة عنصر Placeholder لقائمة Dropdown.

تعليقات

المشاركات الشائعة من هذه المدونة

C# - Arrays

Entity Framework - ما هو ORM؟ ونبذة عن Dapper وNHibernate

Entity Framework - مقدمة عن Entity Framework