Extracting pattern and simplifying testing
One option would be to create a generic method that accepts delegates to the methods:

var combined = Combine(_builder.Build, _formatter.Format, _loader.Load, _selector.Select);
return combined(i);


The implementation would look like this:

public static Func&lt;T1, T5&gt; Combine&lt;T1, T2, T3, T4, T5&gt;(
    Func&lt;T1, T2&gt; f1, Func&lt;T2, T3&gt; f2, Func&lt;T3, T4&gt; f3, Func&lt;T4, T5&gt; f4)
{
    return input =&gt;
    {
        var r1 = f1(input);
        var r2 = f2(r1);
        var r3 = f3(r2);
        var r4 = f4(r3);
        return r4;
    };
}


The implementation would need to have overloads for different number of delegates.

Also, I'm not completely sure whether this actually improves the situation. Your original code is very straightforward, this code is harder to understand, because it's not immediatelly clear what does Combine() do.