Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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
如何在具有if-else条件的c#linq中使用按内部select语句排序_C#_Linq - Fatal编程技术网

如何在具有if-else条件的c#linq中使用按内部select语句排序

如何在具有if-else条件的c#linq中使用按内部select语句排序,c#,linq,C#,Linq,我需要按条件在上述到期日前订购 条件:如果其升序到期日应由asc指定 否则下降 每个记录的截止日期将不同 查询时需要检查条件这似乎可以做到: select new { DueDate = dd.DueDate, DateType = dd.DateType, Quantity = dd.Quantity, } 我想你想要的是: bool myCondition = // false/true; var myList = myInput.Select new {

我需要按条件在上述到期日前订购

条件:如果其升序到期日应由asc指定 否则下降 每个记录的截止日期将不同


查询时需要检查条件

这似乎可以做到:

select new 
{      
  DueDate = dd.DueDate, 
  DateType = dd.DateType,
  Quantity = dd.Quantity,
}

我想你想要的是:

bool myCondition = // false/true;
var myList = myInput.Select new 
{      
    DueDate = dd.DueDate, 
    DateType = dd.DateType,
    Quantity = dd.Quantity,
};

var result = (myCondition  ? 
        myList.OrderBy(x => x.DueDate) : 
        myList.OrderByDescending(x => x.DueDate)
    ).Select(x => new { DueDate = x.DueDate });

日期必须在
new{…}
块之外声明。但是,如果每个项目的日期都发生了变化,那么我建议使用一个简单的for循环来完成这项工作。

完全不清楚您想做什么。如果满足条件,是否要订购?或者支票该怎么办?无论如何,请展示您迄今为止所做的尝试。您正在寻找
OrderBy
<代码>选择(dd=>new{DueDate=dd.DueDate,…}).OrderBy(item=>item.DueDate)是的,你是对的。需要根据条件进行排序,以及当条件未通过时应该发生什么?它应该按下降顺序排序感谢响应,我已经尝试过了。这是我们查询后的订单。。我需要在查询时按顺序显示您的查询。不清楚您是如何进行实际查询的。请选择new DemandLine{DueDate=dd.DueDate,ObjSubParentProductFamily=new SubParentProductFamily{SubParentProductFamilyId=v.SubParentProductFamilyId},UnitPrice=Convert.ToDecimal(14.50),}在这里,我需要在截止日期前订购,具体取决于条件。请将其放入您的问题中,以便每个人都能看到。来吧,分享你的负担,我们不是来猜你想要实现什么的。我已经根据你的问题编辑了我的答案。请注意,由于linq延迟执行,查询只执行一次,尽管order语句不在同一行中。
items.Select (item => new 
                         { 
                           x = item.y == cond ? item.y : Sort(item.y);
                           // if item.y == condition, then item.y ELSE Sort item.y
                           ...
                         }
              );