在表达式查询中使用if else c#

时间:2016-09-07 10:02:17

标签: c# linq if-statement

假设我有一个linq表达式查询。

function a(DateTime timestamp){
from c in categories
***
if(dateTime is not null)
  //add where statement like c.UpdateDate < timestamp
***
select new Item
  {

  }
}

我希望在传递给函数的时间戳不为null时在查询中添加if语句。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

随时随地构建您的查询。

var query = from c in categories select c;
if (dateTime is not null) {
    query = query.Where(c => c.UpdateDate < dateTime);
}
var results = query.Select(x => new Item { ... }).ToArray();

另一种选择是:

var query = from c in categories
            where (dateTime == null || c.UpdateDate < dateTime)
            select new Item { ... };

注意:这确实在SQL中创建了等效条件。第一个选项没有。