My users pass me an array of some type, say int[] or string[]. I can easily query the types of the elements via GetElementType, and I can find out how long the array was when it was passed to me via GetRank, GetLength, etc.
The arrays are passed in a params list, so visualize code like this:
public void Resizer(params object[] objs)
{
foreach (object o in objs)
Array.Resize(ref o, 3);
}
What I would like to do is the converse of the Get methods that are available and that do work: I want to resize the array that was passed to me, setting the length to some other length (like 3 in this silly example).
I’m doing this because in my setting the array will contain data received from a set of cloud computing servers and we can’t know how many will respond in advance, hence can’t preallocate the array to have the right length. Ideally, in fact, my user passes in an array of length 0, and I pass back an array of length n, signifying that I got n replies from the servers that were queries.
I can’t do this with Array.Resize(ref T, int) because I don’t know T at compile time.
Is there a way to pull this off?
In case anyone is curious, I ended up switching my code to use List