辞書を使用してプロパティを格納する汎用オブジェクトがあります。
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ステートメントは完全にユーザー次第であり、修正されていません。