今、関数の引数を設定したλ式を作る時、以下のようにしているのですが、
もっと良い方法または、ライブラリにこれと同様なことをするための物はあるのでしょうか?
static Func<TResult> SetArg<T1,TResult>(Func<T1,TResult> f,T1 a1)
{
   return () => f(a1);
}
...
static Func<TResult> SetArg<T1,T2,T3,T4,TResult>(Func<T1,T2,T3,T4,TResult> f,T1 a1,T2 a2,T3 a3,T4 a4)
{
    return () => f(a1,a2,a3,a4) ;
}