static void Main(string[] args)
    {
        Expression <Func <int, bool> > x = (i => i > 3 && i % 4 == 0);
        var visitor = new GetSubExpressionVisitor(4);

        visitor.Visit(x);
    }
 static void Main(string[] args)
 {
     Expression <Func <int, bool> > x = (i => i > 3 && i % 4 == 0);
     var visitor = new GetSubExpressionVisitor();
     var visited = (Expression <Func <int, bool> >)visitor.Visit(x);
     var func    = visited.Compile();
     var result  = func(4);
 }