我正在尝试在某些对象上编写LINQ查询,如果设置了过滤器值,我只需要执行select。
有没有办法动态地“更改”查询,只有在设置了选项时才执行选择。
答案 0 :(得分:4)
使用where
查找感兴趣的项目,例如:
collection.Where(i => PassesFilter(i)).Select(i => i.InterestingValue);
答案 1 :(得分:1)
var query = Somthing().Where(x => x.IsSomethingYouAlwaysFilterBy);
if(FilterValueIsSet(filterValue))
{
query = query.Where(x => x.Property == filterValue)
}
答案 2 :(得分:1)
我不确定我理解你的问题,但你可以使用谓词构建器。 Predicate Builder example here