Yes, you can use that now rather outdated, and very limited, type 'Array to hold Controls
Control[] BunchAControls = new Control[];
BunchAControls[0] = textBox1;
BunchAControls[1] = button1;
Or, you could use the ControlCollection object which at least supports 'AddRange:
ControlCollection cCollection;
cCOllection = new ControlCollection(this);
cCollection.Add(textBox1);
cCollection.Add(button1);
Or you could get modern and use a generic List<Control>:
List<control> lControls = new List<Control>();
lControls.AddRange { textBox1, button1 };</control>
But, the big question to ask here is why you want such a collection of Controls:
1. since the collection contains only those "common" properites and methods shared by all Controls: if you want to access properties or methods unique, say, for a TextBox ... compared to Button: you'll have to convert the Control back to its "finalized" Type to expose those properties, methods, etc. Which means casting, which is usually something to be avoided.
Now, you may have a very good strategic reason to make an Array, Collection, or generic List of Controls. If you share what your goal is, here. Hopefully we can make some creative suggestions.
good luck, Bill