LINQ Union Method
LINQ Union Method
دالة Union()
في LINQ تُستخدم لدمج مجموعتين من نفس النوع، ولكن **مع إزالة العناصر المكررة**،
يعني الناتج يكون فيه العناصر الفريدة فقط من كلا المجموعتين.
✅ مثال باستخدام 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.Union(list2);
foreach (var num in result)
{
Console.Write(num + " ");
}
📌 النتيجة: 1 2 3 4 5 6 7
✅ مثال باستخدام Query Syntax:
var result = (from n in list1
select n).Union(list2);
foreach (var num in result)
{
Console.Write(num + " ");
}
💡 خصائص مهمة:
- تُزيل التكرارات: بعكس
Concat()
اللي بتضم الكل، حتى لو مكرر. - تحافظ على العناصر الفريدة فقط.
- تستخدم Default Equality Comparer: يعني بتعتمد على المساواة العادية للنوع.
- تدعم التنفيذ المؤجل (Deferred Execution).
🛠️ متى تستخدم Union؟
- لما تحتاج دمج قائمتين **بدون تكرار**.
- لما تجمع بيانات من مصدرين وعايز **تصفية التكرار تلقائيًا**.
- لما تعمل تقارير بتحتاج تعرض **قائمة موحدة** من عناصر فريدة.
🆚 مقارنة سريعة مع Concat:
الخاصية | Union | Concat |
---|---|---|
التكرارات | تُزيل التكرارات | تُبقي التكرارات |
الترتيب | يحافظ على ترتيب أول ظهور | يحافظ على ترتيب المصدرين |
الأداء | أبطأ قليلاً (لأنه بيبحث عن التكرار) | أسرع (لا يتحقق من التكرار) |
تعليقات
إرسال تعليق