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()لترتيب ثانوي.
تعليقات
إرسال تعليق