The SqlDataReader class offers a method called GetValues. What I find curious about this method is that it takes an object[] as input and returns an int of the number of values copied into the array.
Any idea why the method was designed that way, rather than returning a new Array?
According to the documentation:
This allows the caller to be in complete control of the memory allocation and also control the number of columns requested easily.