mogę skonstruować Linq Query dynamicznie orderby oświadczenie jak poniżej:Jak dynamicznie dodawać malejąco do orderby?
var Query = from q in Db.TblUsers select q;
switch (Order)
{
case "Name": Query = from q in Query orderby q.Name select q; break;
case "DOB": Query = from q in Query orderby q.DOB select q; break;
// ... and more cases
}
var Result = Query.ToList();
Jednakże, jeśli istnieje potrzeba, aby być uporządkowane malejąco (w zależności od wyboru użytkownika w interfejsie), będę musiał zbudować kolejny switch duplikować wszystkie sprawy, aby dodać słowo kluczowe "malejąco" po zamówieniu.
przykład:
if (ascending)
{
switch (Order)
{
case "Name": Query = from q in Query orderby q.Name select q; break;
// ....
}
}
else
{
switch (Order)
{
case "Name": Query = from q in Query orderby q.Name descending select q; break;
// ....
}
}
Czy istnieje sposób dla mnie, aby dodać tylko słowa kluczowego dynamicznie opadający do zapytania?
http://stackoverflow.com/questions/41244/dynamic-linq-orderby-on-ienumerablet –
Może ty po prostu użyj 'if (! ascending) {Query = Query.Reverse(); } '? Można też poczekać, aż pojawi się "Lista <>", która może być odwrócona w miejscu: 'Result.Reverse();' –