using System.Linq.Expressions;
public string Location { get; set; }
public static void Main()
var filterList = new [] {
Expression<Func<WorkOrder, bool>> predicate = filelist => false;
foreach(var filter in filterList) {
Expression<Func<WorkOrder, bool>> orPredicate = filelist => filter.Contains(filelist.Location);
var body = Expression.Or(predicate.Body, orPredicate.Body);
predicate = Expression.Lambda<Func<WorkOrder,bool>>(body, predicate.Parameters[0]);
IQueryable<WorkOrder> myQueryable = Enumerable.Empty<WorkOrder>().AsQueryable().Where(predicate);