I am considering using a Linq Expression as a key in a dictionary. However, I am concerned that I will get strange results, because I don\'t know how Equality is determined
Your test compares expressions. Expressions themselves offer only reference equality; your test will probably show "false". To cheek for semantic equality you would need to do a lot of work, for example - are:
x => 123
And
y => 123
Equivalent? As a crude test you can compare ToString(), but this will be exceptionally brittle.