在表达式查询中使用if else

本文关键字:if else 表达式 查询 | 更新日期: 2023-09-27 18:05:56

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

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

当传入函数的时间戳不为空时,我想在查询中添加if语句。

在表达式查询中使用if else

随你的便建立你的查询。

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中创建相同的条件。