With and relations of sentences, you can simply simply add the .Where() filter method, as such:
where conditionOriginal(r) and conditionDynamic(r)
a
var results = (from r in originalResults where originalConditions(r) select r); ... if (conditionA) results = results.Where(r => conditionDynamic(r));
To add an or relationship, you must combine with the original result set, for example:
where conditionOriginal(r) or conditionDynamic(r)
becomes
var results = (from r in originalResults where conditionOriginal(r) select r); ... if (conditionB) results = results.Union((from r in originalResults where conditionDynamic(r) select r));
or
if (conditionB) results = results.Union(originalResults.Where(conditionDynamic(r)));
source share