我正在考虑使用
Linq Expression作为字典中的关键.不过,我很担心我会得到奇怪的结果,因为我不知道平等是如何由Linq表达决定的.
派生自表达式的类比较值相等或引用相等吗?或换句话说,
Expression<Func<object>> first = () => new object(); Expression<Func<object>> second = ()=>new object(); bool AreTheyEqual = first == second;
解决方法
您的测试比较表达式.表达本身只提供参考平等;您的测试可能会显示“假”.为了面对语义平等,你需要做很多工作,例如:
x => 123
和
y => 123
当量?作为一个粗糙的测试,您可以比较ToString(),但这将是非常脆弱的.