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
مخصص. - كل الطرق دي بتُرجع نتائج جديدة وما بتغيرش المجموعة الأصلية.
تعليقات
إرسال تعليق