LINQ Concat Method

LINQ Concat Method


دالة Concat() في LINQ تُستخدم لدمج تسلسلين (Lists, Arrays...) في تسلسل واحد. العناصر من التسلسل الثاني تُضاف في نهاية الأول، **دون إزالة التكرارات**.



✅ مثال باستخدام Method Syntax:


List<int> list1 = new List<int>() { 1, 2, 3, 4, 5 };
List<int> list2 = new List<int>() { 3, 5, 6, 7 };

var result = list1.Concat(list2);

foreach (var num in result)
{
    Console.Write(num + " ");
}

📌 النتيجة: 1 2 3 4 5 3 5 6 7



✅ مثال باستخدام Query Syntax:


var result = (from n in list1
              select n).Concat(list2);

foreach (var num in result)
{
    Console.Write(num + " ");
}


💡 خصائص مهمة:

  • لا تزيل التكرارات: العناصر المتكررة تبقى في النتيجة.
  • تحافظ على الترتيب: عناصر list1 أولًا، ثم list2.
  • تتطلب نفس النوع: لازم يكون النوع متطابق بين القائمتين.
  • تنفيذ مؤجل: النتيجة لا تُنفذ فورًا إلا عند التكرار (foreach).


🔁 مقارنة مع Union:

  • Concat() تُبقي على كل العناصر بما فيها المكررة.
  • Union() تُزيل العناصر المكررة وتُرجع العناصر الفريدة فقط.


🛠️ متى تستخدم Concat؟

  • لما تحتاج دمج قائمتين أو أكثر مع الحفاظ على التكرارات.
  • لما يهمك الترتيب الأصلي للعناصر.


تعليقات

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

HTML - Text Formatting تنسيقات النص

1.1 SQL Introduction

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