[英]How to do “if” in Linq orderby?
我有2個字段用於排序:產品名稱和價格加2個選項:升序或降序。
用戶可以通過設置2個復選框來指定排序順序:打開或關閉價格復選框,打開或關閉復選框。
在根據上述2個復選框的設置動態設置排序順序時,如何編寫orderby子句? 謝謝。
您可以通過有條件地指定OrderBy
子句來構建查詢:
var query = from product in db.Products select product;
if(price.Checked && ascending.Checked)
{
query = query.OrderBy(product => product.Price);
}
else if(price.Checked && !ascending.Checked)
{
query = query.OrderByDescending(product => product.Price);
}
else if(!price.Checked && ascending.Checked)
{
query = query.OrderBy(product => product.Name);
}
else
{
query = query.OrderByDescending(product => product.Name);
}
請注意,下面的ascendingCondition基於您的代碼
if(ascendingCondition)
{
ProductCollection.OrderBy(p => p.Name).ThenBy(p => p.Price)
}
else
{
ProductCollection.OrderByDescending(p => p.Name).ThenByDescending(p => p.Price)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.