Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “怎么做?”;如果;在Linq orderby?_C#_Linq_Sql Order By - Fatal编程技术网

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)
}