我需要比较两个 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
?
我需要比较两个 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
?
您可能需要使用 IComparer 或模拟类
查看c-sharp-lambda-expressions-and-icomparer和comparison -simple-lambda-expressions