Func<〜>型の変数同士の比較ってうまくいかないの?
Func<int, int> hoge = p => p * 2;
Func<int, int> fuga = p => p * 2;

bool flg = (hoge==fuga); //trueにならない