如何在c#linq中使用if else条件中的s​​elect语句使用order

时间:2017-04-26 12:09:48

标签: c# linq

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

我需要在上述截止日期前按条件

订购

条件:如果其递增 - 截止日期应由asc订购 否则下降 截止日期将与每个记录不同

查询时需要检查条件

2 个答案:

答案 0 :(得分:0)

似乎应该这样做:

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

答案 1 :(得分:0)

我认为你所寻找的是:

items.Select (item => new 
                         { 
                           x = item.y == cond ? item.y : Sort(item.y);
                           // if item.y == condition, then item.y ELSE Sort item.y
                           ...
                         }
              );

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