C#初心者ですが質問させてください。

クラスA,Bというのを自作していて、

double func(A a, B, b)

という関数をメモ化したいと思ってます。

Dictionaryクラスはkeyとvalueがそれぞれ一つなので、
keyをAとBの二つにするために

Dictionary<Tuple<A, B>, double> memoization = new Dictionary<Tuple<A, B>, double>();

というメモ化用のDictionaryを作り

Tuple<A, B> key = Tuple.Create(a, b);

というキーを生成してメモ化を行おうと思ったのですが、
同じaとbが入ってきたとしてもTuple.Createは新しいインスタンスを作ってしまいますよね?
なので、現状うまくいってません。

何かうまい解決法はありますでしょうか?

aとbにハッシュ関数を適用して適当な値にしてそれをキーにするしかないですか?
衝突の可能性とかがあってできれば避けたいんですが・・・。