LINQ - Set Operators Overview

عاملات المجموعات (Set Operators) في LINQ باستخدام C#


عاملات المجموعات في LINQ بتستخدم علشان تنفذ عمليات زي: Distinct، Union، Intersect، وExcept، واللي بتسمحلك تتحكم في دمج، مقارنة، أو تصفية البيانات بين مجموعات مختلفة.



✅ 1. Distinct - إزالة التكرارات


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

var distinctNumbers = numbers.Distinct();

foreach (var number in distinctNumbers)
{
    Console.WriteLine(number);
}

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



✅ 2. Union - دمج مجموعتين بدون تكرار


List<int> numbers1 = new List<int> { 1, 2, 3 };
List<int> numbers2 = new List<int> { 3, 4, 5 };

var unionNumbers = numbers1.Union(numbers2);

foreach (var number in unionNumbers)
{
    Console.WriteLine(number);
}

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



✅ 3. Intersect - العناصر المشتركة


List<int> numbers1 = new List<int> { 1, 2, 3, 4 };
List<int> numbers2 = new List<int> { 3, 4, 5, 6 };

var intersectNumbers = numbers1.Intersect(numbers2);

foreach (var number in intersectNumbers)
{
    Console.WriteLine(number);
}

📌 النتيجة: 3 4



✅ 4. Except - الفرق بين مجموعتين


List<int> numbers1 = new List<int> { 1, 2, 3, 4 };
List<int> numbers2 = new List<int> { 3, 4, 5, 6 };

var exceptNumbers = numbers1.Except(numbers2);

foreach (var number in exceptNumbers)
{
    Console.WriteLine(number);
}

📌 النتيجة: 1 2



💡 ملاحظات:

  • كل العمليات دي بتعتمد على المقارن الافتراضي للقيم.
  • لو القيم من نوع معقد (كائنات/Objects)، تقدر توفر IEqualityComparer مخصص.
  • كل الطرق دي بتُرجع نتائج جديدة وما بتغيرش المجموعة الأصلية.


تعليقات

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

C# - Arrays

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

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