Specifically, I want to write this:
public Func, T> SelectElement = list => list.First();
But I get a syntax error
Nope, sorry. That would require generic fields or generic properties, which are not features that C# supports. The best you can do is make a generic method that introduces T:
public Func, T> SelectionMethod() { return list => list.First(); }
And now you can say:
Func, int> selectInts = SelectionMethod();