如何做“;如果“;在Linq orderby中
本文关键字:orderby Linq 如果 何做 | 更新日期: 2023-09-27 18:20:14
我有两个字段用于排序:产品名称和价格加上两个选项:升序或降序。
用户可以通过设置两个复选框来指定排序顺序:价格复选框打开或关闭,升序复选框打开和关闭
当排序顺序是根据上面两个复选框的设置动态设置的时,我如何对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);
}
请注意,下面的上升条件是基于您的代码
if(ascendingCondition)
{
ProductCollection.OrderBy(p => p.Name).ThenBy(p => p.Price)
}
else
{
ProductCollection.OrderByDescending(p => p.Name).ThenByDescending(p => p.Price)
}