2010-08-09 13 views
0

J'ai un objet générique propriétés:Utilisation de l'évaluateur d'expression pour exécuter des chaînes LINQ dynamiques sur plusieurs Enumerables - DLR/NCalc/Flee?

Class MyObject 
{ 
    public Dictionary<string, Object> properties = new Dictionary<string, Object>(); 
    public object this[string name] { get { return properties[name]: null; } 
} 
List<MyObject> People= new List<MyObject>(); 
People.Add(new MyObject(age = 50, home = "Dublin", name = "Bob", Income = "50")); 
People.Add(new MyObject(age = 45, home = "London", name = "Tim", Income = "90")); 

List<MyObject> Cities= new List<MyObject>(); 
Cities.Add(new MyObject(City = "Dublin", Country = "IE")); 
Cities.Add(new MyObject(City = "London", Country = "UK")); 

Je voudrais pouvoir interroger ces Enumerables en utilisant Linq, mais ces requêtes sont dynamiques et serait dans les chaînes, par exemple

People. 
Where(a["age"] > 45 && Cities.Where(b["Country"] == "IE").Contains(a["home"]). 
Sum(c["Income"]) 

Des recommandations? J'utilise actuellement Ncalc avec beaucoup d'instructions switch qui appellent le code Linq ...

Répondre