Eu sei que na gramática normal do Linq, orderby xxx descendingé muito fácil, mas como faço isso na expressão Lambda?
Eu sei que na gramática normal do Linq, orderby xxx descendingé muito fácil, mas como faço isso na expressão Lambda?
Respostas:
Como Brannon diz, é OrderByDescendinge ThenByDescending:
var query = from person in people
orderby person.Name descending, person.Age descending
select person.Name;
é equivalente a:
var query = people.OrderByDescending(person => person.Name)
.ThenByDescending(person => person.Age)
.Select(person => person.Name);
Tente o seguinte:
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);
}
Tente isso de outra maneira:
var qry = Employees
.OrderByDescending (s => s.EmpFName)
.ThenBy (s => s.Address)
.Select (s => s.EmpCode);
Isso funciona apenas em situações em que você possui um campo numérico, mas pode colocar um sinal de menos na frente do nome do campo, da seguinte maneira:
reportingNameGroups = reportingNameGroups.OrderBy(x=> - x.GroupNodeId);
No entanto, isso funciona um pouco diferente do que OrderByDescendingquando você o está executando em um int?ou double?ou decimal?campos.
O que acontecerá é que OrderByDescendingos nulos estarão no final, contra esse método, os nulos estarão no início. O que é útil se você deseja embaralhar nulos sem dividir os dados em partes e emendá-los posteriormente.