C# “怎么做?”;如果;在Linq orderby?
我有两个字段用于排序:产品名称和价格加上两个选项:升序或降序 用户可以通过设置两个复选框来指定排序顺序:打开或关闭价格复选框,打开或关闭升序复选框C# “怎么做?”;如果;在Linq orderby?,c#,linq,sql-order-by,C#,Linq,Sql Order By,我有两个字段用于排序:产品名称和价格加上两个选项:升序或降序 用户可以通过设置两个复选框来指定排序顺序:打开或关闭价格复选框,打开或关闭升序复选框 当基于上述两个复选框的设置动态设置排序顺序时,如何对orderby子句进行编码?谢谢。您可以通过有条件地指定OrderBy子句来构建查询: var query = from product in db.Products select product; if(price.Checked && ascending.Checked) {
当基于上述两个复选框的设置动态设置排序顺序时,如何对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)
}