确定具体值或表达式是否通过?

时间:2009-04-18 06:38:46

标签: c# linq lambda

无论如何都要确定一个值是否作为参考传递,例如。 x.Age或特定值。例如。 20喜欢这样。

value(x => x.Age)

value(x => 20)

干杯

1 个答案:

答案 0 :(得分:4)

如果value()采用Func<,>或其他代表类型,那么你基本上无法分辨。该函数已被编译:充其量,您可以使用反射查看IL并尝试启发式地计算出来。

如果value()采用Expression,那么您可以遍历表达式树。在一般情况下,这可能很复杂,但对于像您这样的简单情况,只需查找MemberExpression与ConstantExpression即可。