我可以排序依據語句動態地構建LINQ查詢象下面這樣:如何動態添加降序到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();
但是,如果有必要,責令降序(取決於用戶選擇在UI),我將不得不構造另一個switch語句複製所有的情況只是爲了在orderby之後添加「降序」關鍵字。
例如:
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;
// ....
}
}
有沒有辦法對我來說,動態地添加只是下降關鍵字查詢?
http://stackoverflow.com/questions/41244/dynamic-linq-orderby-on-ienumerablet –
也許你可以只需使用'if(!ascending){Query = Query.Reverse(); }'?或者你可以等到你的'List <>'它可以在原地顛倒:'Result.Reverse();' –