【发布时间】:2011-05-21 15:46:34
【问题描述】:
我需要生成表达式树而不是检查两个对象(参数)是否相等。我知道这些对象会有属性,所以我要比较它们的值,怎么做呢?
所以我有类似obj1、obj2 和我需要检查的属性名称的字符串数组。
这是我的看法:
var leftObject = E.Parameter(typeof (object), "leftObject");
var rightObject = E.Parameter(typeof (object), "rightObject");
var properties = E.Parameter(typeof (string[]), "properties");
var i = E.Parameter(typeof(int), "i");
var equal = E.Parameter(typeof (bool), "equal");
var body = E.Block
(
new[] { properties, i},
E.Assign(properties,E.Constant(props)),
E.Assign(i,E.Constant(0)),
E.Assign(equal,E.Constant(true)),
E.Loop
(
E.Property(leftObject,props[i]) == E.Property(rightObject,props[i])
)
);
如何在Loop中实现对属性的一一访问?
附: E 是我的别名 Expression。
【问题讨论】:
标签: c# expression-trees