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
. - في الأنواع البسيطة، تعمل بدون مشاكل.
تعليقات
إرسال تعليق