c# - How do Linq Expressions determine equality? -
i considering using linq expression key in dictionary. however, concerned strange results, because don't know how equality determined linq expressions.
does class derived expression compare value equality or reference equality? or in other words,
expression<func<object>> first = () => new object(); expression<func<object>> second = ()=>new object(); bool aretheyequal = first == second;
your test compares expressions. expressions offer reference equality; test show "false". cheek semantic equality need lot of work, example - are:
x => 123
and
y => 123
equivalent? crude test can compare tostring(), exceptionally brittle.
Comments
Post a Comment