LINQ - OrderBy Method

LINQ OrderBy


الدالة OrderBy() في LINQ تُستخدم لترتيب عناصر مجموعة بشكل تصاعدي (من الأصغر للأكبر - أو من A لـ Z).



✅ مثال باستخدام Method Syntax:


List<int> numbers = new List<int>() { 10, 45, 30, 25, 100, 5 };

var result = numbers.OrderBy(n => n);

foreach (var num in result)
{
    Console.Write(num + " ");
}

📌 النتيجة: 5 10 25 30 45 100



✅ نفس المثال باستخدام Query Syntax:


var result = from num in numbers
             orderby num
             select num;

foreach (var num in result)
{
    Console.Write(num + " ");
}


🧩 مثال باستخدام كائنات (Objects):


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 = 1, Name = "Mahmoud", Age = 21 },
    new Student() { ID = 2, Name = "Ahmed", Age = 20 },
    new Student() { ID = 3, Name = "Sara", Age = 22 }
};

var result = studentList.OrderBy(s => s.Name);

foreach (var student in result)
{
    Console.WriteLine($"ID = {student.ID}, Name = {student.Name}, Age = {student.Age}");
}

📌 الترتيب هنا حسب الاسم تصاعديًا (A → Z).



✅ نفس المثال باستخدام Query Syntax:


var result = from s in studentList
             orderby s.Name
             select s;

foreach (var student in result)
{
    Console.WriteLine($"ID = {student.ID}, Name = {student.Name}, Age = {student.Age}");
}


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

  • OrderBy() يرتب القيم تصاعديًا فقط.
  • لو محتاج ترتيب تنازلي، استخدم OrderByDescending().
  • الدالة لا تغيّر المصدر الأصلي، لكنها تُرجع نسخة مرتبة منه.
  • ممكن تضيف ThenBy() لترتيب ثانوي.


تعليقات

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

HTML - Text Formatting تنسيقات النص

1.1 SQL Introduction

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