As listas são um exemplo de classes genéricas. Também vais ver HashSet<T> e Dictionary<T> nos primeiros exercícios.
Se precisares de uma lista de tipos diferentes, podes usar List<Object>, mas vais ter de fazer uma conversão descendente dos elementos a que acedes na lista.
Convém também conheceres o System.Collections.List, que podes encontrar em código legado. Para todos os efeitos, comporta-se como List<Object>.