F# allows you to let the compiler work out what type paramters should be.
let foo = [| 1 |]
let bar = Array.head<_> foo
(you'd never actually do this, you'd drop the parameter, but this is just illustrative).
Is there something in C# that's equivalent?
The problem is...I have F# code that takes literally 30 type parameters, calling this code from F# is trivial, the compiler just works it out (and if it couldn't, then specifying 1 parameter and wildcarding the rest would nicely hint to the compiler what to do), calling this code from C# is horrific, as you have to painstakingly work out the parameters (if you leave them out completely, it stubbornly refuses to infer them).
P.S.
even nasty hacks like getting the IDE to explicitly specify these parameter in F# code, that can then be largely pasted into the C# code would help.
(I understand why C#'s inference is weaker, it's life, but my examples are actually pretty mechanical)