我有一个通用对象,它使用字典来存储属性:
class MyObject
{
Dictionary<string, object> Properties = new Dictionary<string, object>();
internal GetValue(string name) { return Properties[name]; }
internal SetValue(string name, object value) { Properties[name] = value; }
}
MyObject obj1 = New MyObject();
obj1.SetValue("Name", "John");
obj1.SetValue("Age", 23);
MyObject obj2 = New MyObject();
obj2.SetValue("Name", "Mary");
obj2.SetValue("Age", 24);
List<MyObject> ObjList = new List<MyObject>();
ObjList.Add(obj1);
ObjList.Add(obj2);
现在我们需要查询 ObjList 以找到某些条目。动态 LINQ(动态 LINQ(第 1 部分:使用 LINQ 动态查询库))似乎很完美,但据我所知,它要求对象具有预定义的属性。
我们想做如下查询:
ObjList.Where("Name == 'Mary' || Age < 24");
任何标记(例如姓名、年龄)都应调用“GetValue”。有什么建议么?
显然 where 语句完全取决于用户并且不是固定的。