Creando una lista de listas en C #

Parece que tengo algunos problemas para comprender la idea de una lista genérica de listas genéricas en C #. Creo que el problema proviene del uso de la<T> argumento, con el que no tengo experiencia previa jugando. ¿Podría alguien proporcionar un breve ejemplo de declaración de una clase que es una Lista, que en ella contiene otra Lista, pero donde el tipo del objeto que contiene no se conoce de inmediato?

He estado leyendo la documentación de MS sobre Genéricos, y no estoy seguro de si puedo declararList<List<T>>, ni exactamente cómo pasar el<T> parámetro a la lista interior.

Editar: Añadiendo información

Declararía unList<List<T>> ser considerado legal aquí? En caso de que se esté preguntando, estoy creando una clase para que me permita usar un ulong como el indexador, y (con suerte) esquivar el desagradable límite de 2 GB de .Net manteniendo una lista de listas.

public class DynamicList64<T>
    {
        private List<List<T>> data = new List<List<T>>();

        private ulong capacity = 0;
        private const int maxnumberofitemsperlist = Int32.MaxValue;



        public DynamicList64()
        {
            data = new List<List<T>>();
        } 

Respuestas a la pregunta(5)

Su respuesta a la pregunta