比较表达式<T>

Rog*_*mbe 6 .net expression-trees

可能重复:
C#:检查两个Expression <Func <T,bool >>是否相同

我有一堆Expression<Func<T, bool>>谓词,我想比较它们的平等性.有没有办法做到这一点?

背景:我的库将项目排序为"bins",由谓词是否返回true来控制.如果调用者想要创建一个新的bin,我想看看bin是否已经存在.

Jon*_*Jon 3

您可以expr.ToString()作为开始。当然,这在技术上不会太正确,因为它不会考虑结构不同但功能相同的树,也不会考虑表达式的不同命名的形式参数。但它已经足够接近了,而且已经在那里了。

一般来说,不同的树/相同的函数问题可能非常困难,以至于您可能不会去那里(实际上您需要构建一个编译器才能判断两个这样的表达式是相同的)。