Je sais que dans la grammaire Linq normale, orderby xxx descending
c'est très facile, mais comment faire cela dans l'expression Lambda?
Je sais que dans la grammaire Linq normale, orderby xxx descending
c'est très facile, mais comment faire cela dans l'expression Lambda?
Réponses:
Comme le dit Brannon, c'est OrderByDescending
et ThenByDescending
:
var query = from person in people
orderby person.Name descending, person.Age descending
select person.Name;
est équivalent à:
var query = people.OrderByDescending(person => person.Name)
.ThenByDescending(person => person.Age)
.Select(person => person.Name);
Essaye ça:
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);
}
Essayez ceci d'une autre manière:
var qry = Employees
.OrderByDescending (s => s.EmpFName)
.ThenBy (s => s.Address)
.Select (s => s.EmpCode);
Cela ne fonctionne que dans les situations où vous avez un champ numérique, mais vous pouvez mettre un signe moins devant le nom du champ comme suit:
reportingNameGroups = reportingNameGroups.OrderBy(x=> - x.GroupNodeId);
Cependant , cela fonctionne un autre petit peu que OrderByDescending
lorsque vous avez exécutez sur un int?
ou double?
ou les decimal?
champs.
Ce qui se passera est sur OrderByDescending
les nulls sera à la fin, vs avec cette méthode, les nulls seront au début. Ce qui est utile si vous souhaitez mélanger les valeurs nulles sans diviser les données en morceaux et les épisser plus tard.