Câu trả lời:
Như Brannon nói, đó là OrderByDescending
và ThenByDescending
:
var query = from person in people
orderby person.Name descending, person.Age descending
select person.Name;
tương đương với:
var query = people.OrderByDescending(person => person.Name)
.ThenByDescending(person => person.Age)
.Select(person => person.Name);
Thử cái này:
List<int> list = new List<int>();
list.Add(1);
list.Add(5);
list.Add(4);
list.Add(3);
list.Add(2);
foreach (var item in list.OrderByDescending(x => x))
{
Console.WriteLine(item);
}
Hãy thử cách này khác:
var qry = Employees
.OrderByDescending (s => s.EmpFName)
.ThenBy (s => s.Address)
.Select (s => s.EmpCode);
Điều này chỉ hoạt động trong các trường hợp bạn có trường số, nhưng bạn có thể đặt dấu trừ trước tên trường như vậy:
reportingNameGroups = reportingNameGroups.OrderBy(x=> - x.GroupNodeId);
Tuy nhiên, điều này hoạt động hơi khác một chút so với OrderByDescending
khi bạn đang chạy nó trên một int?
hoặc double?
hoặc decimal?
các trường.
Điều gì sẽ xảy ra là trên OrderByDescending
null sẽ ở cuối, so với phương thức này thì null sẽ ở đầu. Điều này rất hữu ích nếu bạn muốn xáo trộn null xung quanh mà không chia dữ liệu thành từng mảnh và ghép nó sau.