假设我有一个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语句。
任何帮助都将不胜感激。
答案 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中创建了等效条件。第一个选项没有。