LINQ - Select Operator

🎯 LINQ Select Operator في #C


في هذا الدرس سنتعرّف على Select Operator في LINQ باستخدام لغة C#. وهي واحدة من أهم Projection Operators، وبتُستخدم لاختيار أو تشكيل البيانات (projection) من مصدر البيانات.


🧠 ما هو Select؟

Select بيستخدم لاختيار قيم معينة من collection أو database وإسقاطها بشكل جديد. ممكن ترجّع كل الكائنات أو خصائص معينة أو حتى تنشئ anonymous types.



🧾 Syntax

✅ Query Syntax:

var result = from item in collection
             select item.Property;


✅ Method Syntax:

var result = collection.Select(x => new { x.Property1, x.Property2 });


✅ مثال 1: اختيار كل العناصر من قائمة

List<string> names = new List<string>() { "Mahmoud", "Ali", "Sara", "Noor" };

var result = from name in names
             select name;

foreach (var name in result)
{
    Console.WriteLine(name);
}

النتيجة:

Mahmoud  
Ali  
Sara  
Noor


✅ مثال 2: اختيار خاصية من كائن

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

List<Student> students = new List<Student>()
{
    new Student() { ID = 1, Name = "Mahmoud", Age = 20 },
    new Student() { ID = 2, Name = "Ali", Age = 22 },
    new Student() { ID = 3, Name = "Sara", Age = 21 }
};

var result = from s in students
             select s.Name;

foreach (var name in result)
{
    Console.WriteLine(name);
}

النتيجة:

Mahmoud  
Ali  
Sara


✅ مثال 3: Select مع Anonymous Type

var result = students.Select(s => new { s.ID, s.Name });

foreach (var item in result)
{
    Console.WriteLine("ID = " + item.ID + ", Name = " + item.Name);
}

النتيجة:

ID = 1, Name = Mahmoud  
ID = 2, Name = Ali  
ID = 3, Name = Sara


📌 ملاحظات مهمة

  • Select لا تغيّر البيانات الأصلية، بل تُرجع نسخة جديدة.
  • ممكن تستخدمها لاختيار خاصية، أو توليد نوع جديد، أو تنفيذ عملية أثناء الإسقاط.
  • تقدر تدمجها مع Where وOrderBy وغيرها من LINQ operators.

تعليقات

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

C# - Arrays

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

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