Allow internal code to access the args array

Calling .ToArray() will result in a second array being created and
populated with the values. Internal code can re-use the existing array
to save the extra allocation.