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
لو محتاج ترتيب فرعي. - مفيد جدًا في ترتيب النتائج اللي فيها "الأعلى أولًا" زي المرتبات، الدرجات، الأعمار.
تعليقات
إرسال تعليق