LINQ OrderByDescending Method

LINQ OrderByDescending


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



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


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

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

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

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



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


var result = from num in numbers
             orderby num descending
             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.OrderByDescending(s => s.Name);

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

📌 النتيجة بترتب الطلاب حسب الاسم تنازليًا (Z → A).



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


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

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


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

  • OrderByDescending عكس OrderBy.
  • ينفع تستخدم معاه ThenBy أو ThenByDescending لو محتاج ترتيب فرعي.
  • مفيد جدًا في ترتيب النتائج اللي فيها "الأعلى أولًا" زي المرتبات، الدرجات، الأعمار.


تعليقات

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

C# - Arrays

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

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