var terms = title.Split(' ').ToList(); Expression<Func<Item, bool>> predicate = (Item) => false; foreach(var term in terms) predicate = predicate.Or(x => x.ItemName.Contains(term)); items = items.Where(predicate);