Gli array sono un esempio di classi generiche. Vedrai anche HashSet<T> e Dictionary<T> nei primi esercizi.
Se ti serve un array di tipi diversi, puoi usare List<Object>, ma dovrai fare il down cast degli elementi a cui accedi dall'array.
Dovresti anche conoscere System.Collections.List, che potresti incontrare nel codice legacy. A tutti gli effetti si comporta come List<Object>.