LINQ Contains Method

LINQ Contains Method


دالة Contains() تُستخدم للتحقّق مما إذا كانت مجموعة تحتوي على عنصر معين.

  • ترجع true إذا وُجد العنصر.
  • ترجع false إذا لم يكن موجودًا.


✅ مثال 1: مع أنواع بسيطة


int[] numbers = { 10, 20, 30, 40, 50 };

bool result = numbers.Contains(30);
Console.WriteLine(result); // True

bool result = numbers.Contains(100);
Console.WriteLine(result); // False


✅ مثال 2: مع النصوص


List<string> names = new List<string> { "Ahmed", "Sara", "Laila" };

bool result = names.Contains("Sara");
Console.WriteLine(result); // True


🧩 استخدام Contains مع الكائنات (Objects)


public class Student
{
    public int ID { get; set; }
    public string Name { get; set; }
}

List<Student> studentList = new List<Student>()
{
    new Student() { ID = 1, Name = "Ahmed" },
    new Student() { ID = 2, Name = "Sara" }
};

Student std = new Student() { ID = 1, Name = "Ahmed" };

bool result = studentList.Contains(std); // False ❌

📌 المقارنة هنا بالمرجع، مش بالقيم، علشان كده النتيجة False.



✅ الحل: استخدام Any بدلاً من Contains


bool result = studentList.Any(s => s.ID == std.ID && s.Name == std.Name);
Console.WriteLine(result); // True ✅


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

  • Contains() يستخدم المقارنة الافتراضية (Reference).
  • لو النوع معقّد، استخدم Any() أو IEqualityComparer.
  • في الأنواع البسيطة، تعمل بدون مشاكل.


تعليقات

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

C# - Arrays

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

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