Convert string to anonymous method
<p>Consider this code:</p>

<pre><code>    static void Main(string[] args)
    {
        var persons = new List&lt;Person&gt;
                          {
                              new Person("Name1", "Surname1", 30),
                              new Person("Name2", "Surname2", 20),
                              new Person("Name3", "Surname3", 10)
                          };

        var filters = new List&lt;Func&lt;Person, bool&gt;&gt;
                          {
                              p =&gt; p.Age &gt; 10,
                              p =&gt; p.Surname.Contains("2")
                          };

        var personsFiltered = new List&lt;Person&gt;(persons);
        foreach (var filter in filters)
        {
            personsFiltered = personsFiltered.Where(filter).ToList();
        }

        foreach (var person in personsFiltered)
        {
            Console.WriteLine(person);
        }

        Console.ReadKey();
    }
}

class Person
{
    public string Name { get; private set; }
    public string Surname { get; private set; }
    public int Age { get; private set; }

    public Person(string name, string surname, int age)
    {
        Name = name;
        Surname = surname;
        Age = age;
    }

    public override string ToString()
    {
        return String.Format("Name:{0}, Surname:{1}, Age:{2}", Name, Surname, Age);
    }
}
</code></pre>

<p>Is it possible to pass filters as string parameters, so that the user could create custom filters? For example, the <code>filters</code> list in my example would initially be empty and the user would provide strings "p => p.Age > 10" and "p => p.Surname.Contains(\"2")"?</p>
