2012-12-26 57 views
15

thể trùng lặp:
How to check if two Expression<Func<T, bool>> are the sameLàm cách nào để so sánh hai biểu thức lambda?

Tôi cần phải so sánh hai biểu thức lambda, để kiểm tra bình đẳng. Về cơ bản, hai sau lambda là giống hệt nhau:

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

Làm thế nào tôi có thể kiểm tra nếu exp1 làm điều tương tự mà exp2 không?

+3

Liệu bình đẳng có nghĩa là ngữ nghĩa giống nhau, hoặc là cả hai đều tạo ra kết quả tương tự? –

+0

để tham khảo, có một giải pháp [link] (http://stackoverflow.com/a/24528357/2528649), tôi đã kiểm tra nó với mã này, hoạt động tốt. – neleus

Trả lời

Các vấn đề liên quan