public static TResult DoExtensionStuff <TResult>(this ISomeInterface someInterface, object initialObject, params object[] objects) { var result = someInterface.DoInterfaceStuff <TResult>(initialObject); return(objects.Aggregate(result, (agg, cur) => someInterface.DoInterfaceStuff(cur, agg))); }