using System.Collections.Generic;
using System.Linq.Expressions;
new Test() { Id = 1, Name = "A", Age = 30, Gender = 'M' },
new Test() { Id = 2, Name = "B", Age = 31, Gender = 'V' },
new Test() { Id = 3, Name = "C", Age = 40, Gender = 'M' },
new Test() { Id = 4, Name = "D", Age = 34, Gender = '?' }
var expressions = new List<Expression<Func<Test, bool>>>();
expressions.Add(t => t.Age > 32 && t.Gender == 'M');
expressions.Add(t => t.Gender == 'V');
var res = tests.Where(t => Any(t, expressions));
Console.WriteLine(t.Name);
private bool Any(Test t, List<Expression<Func<Test, bool>>> expressions)
foreach (var expr in expressions)
var func = expr.Compile();
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public char Gender { get; set; }