2012-12-26 142 views
15

可能重複:
How to check if two Expression<Func<T, bool>> are the same如何比較兩個lambda表達式?

我需要比較兩個lambda表達式,檢查平等。基本上,以下兩個拉姆達是相同的:

Expression<Func<int, bool>> exp1 = (Foo f) => f.Bar().StartsWith("F"); 
Expression<Func<int, bool>> exp2 = (Foo b) => b.Bar().StartsWith("F"); 

我如何檢查是否exp1這是否exp2做同樣的事情?

+3

是否平等是指在語義上是相同的,或者它們都產生相同的結果? –

+0

供參考,有一個解決方案[鏈接](http://stackoverflow.com/a/24528357/2528649),我用這個代碼檢查過,效果很好。 – neleus

回答