LINQ - Filtering Operators - Where
LINQ Where Method في C#
دالة Where()
في LINQ بتُستخدم لتصفية البيانات واستخراج العناصر اللي بتحقق شرط معين. يعني بنستخدمها علشان نفلتر القوائم أو المصفوفات ونرجّع بس القيم اللي تنطبق عليها شروطنا.
✅ مثال: استخراج الأرقام الزوجية
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
var evenNumbers = numbers.Where(n => n % 2 == 0);
foreach (var num in evenNumbers)
{
Console.WriteLine(num);
}
📌 النتيجة: 2 4 6 8
✅ مثال: التصفية على كائنات
public class Student
{
public int ID { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
List<Student> studentList = new List<Student>()
{
new Student(){ ID = 101, Name = "Tom", Age = 23 },
new Student(){ ID = 102, Name = "Jerry", Age = 25 },
new Student(){ ID = 103, Name = "Mike", Age = 18 }
};
var filtered = studentList.Where(s => s.Age > 20);
foreach (var student in filtered)
{
Console.WriteLine(student.Name);
}
📌 النتيجة: Tom و Jerry (لأن أعمارهم أكبر من 20)
✅ مثال: سلسلة شروط (Chained Where)
var result = studentList
.Where(s => s.Age > 20)
.Where(s => s.Name.StartsWith("J"));
foreach (var student in result)
{
Console.WriteLine(student.Name);
}
📌 النتيجة: Jerry فقط (لأنه عمره أكبر من 20 واسمه بيبدأ بحرف J)
✅ باستخدام Query Syntax:
var filteredStudents = from s in studentList
where s.Age > 20
select s;
foreach (var student in filteredStudents)
{
Console.WriteLine(student.Name);
}
📌 النتيجة زي المثال السابق باستخدام Method Syntax
.
💡 ملاحظات هامة:
- عامل
Where()
هو الأساس في عمليات التصفية باستخدام LINQ. - تقدر تستخدمه مع القوائم، المصفوفات، أو أي مجموعة من نوع
IEnumerable
. - تقدر تربط أكتر من شرط
Where
وراء بعض باستخدام Method Chaining.
تعليقات
إرسال تعليق