Giới thiệu
Từ khóa orderby trong LINQ query syntax dùng để sắp xếp các phần tử trong tập hợp theo thứ tự tăng dần (ascending - mặc định) hoặc giảm dần (descending).
Ví dụ cơ bản
List chuỗi:
ListmyList = new List (); myList.Add("truck"); myList.Add("bus"); myList.Add("bicycle"); myList.Add("motorbike");
Sắp xếp theo độ dài chuỗi tăng dần:
var myLen = from element in myList
orderby element.Length
select element;
Sắp xếp giảm dần:
var myLen = from element in myList
orderby element.Length descending
select element;
Ví dụ hoàn chỉnh
using System;
using System.Collections.Generic;
using System.Linq;
class Demo
{
static void Main()
{
List myList = new List();
myList.Add("truck");
myList.Add("bus");
myList.Add("bicycle");
myList.Add("motorbike");
// Tăng dần
var myLen = from element in myList
orderby element.Length
select element;
Console.WriteLine("Thứ tự tăng dần...");
foreach (string str in myLen)
{
Console.WriteLine(str);
}
// Giảm dần
myLen = from element in myList
orderby element.Length descending
select element;
Console.WriteLine("Thứ tự giảm dần...");
foreach (string str in myLen)
{
Console.WriteLine(str);
}
}
}
Kết quả
Thứ tự tăng dần... bus truck bicycle motorbike Thứ tự giảm dần... motorbike bicycle truck bus
Sắp xếp đa cấp (ThenBy)
Trong query syntax, dùng dấu phẩy để sắp xếp thứ cấp:
var sorted = from e in list
orderby e.LastName, e.FirstName
select e;
Tương đương method syntax: list.OrderBy(e => e.LastName).ThenBy(e => e.FirstName)
Lưu ý
orderbychỉ dùng trong query syntax. Method syntax dùngOrderBy()vàOrderByDescending().- Sắp xếp ổn định (stable sort): các phần tử bằng nhau giữ nguyên thứ tự tương đối.
- Có thể sắp xếp theo nhiều trường bằng cách phân cách bằng dấu phẩy.