Listen sind ein Beispiel für generische Klassen. In frühen Übungen wirst du auch HashSet<T> und Dictionary<T> sehen.
Wenn du eine Liste mit unterschiedlichen Typen brauchst, kannst du List<Object> verwenden, aber du musst die Elemente, die du aus der Liste ausliest, in einen abgeleiteten Typ umwandeln.
Du solltest auch System.Collections.List kennen, das dir in altem Code begegnen kann. Praktisch gesehen verhält es sich wie List<Object>.