簡體   English   中英

如何在Linq orderby中做“if”?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM