C # emitir una lista <ObjBase> como lista <Obj>

¿Por qué no puedo lanzar unList<ObjBase> comoList<Obj>? ¿Por qué no funciona lo siguiente:

internal class ObjBase
   {
   }

internal class Obj : ObjBase
   {
   }   

internal class ObjManager
{
    internal List<Obj> returnStuff()
    {
       return getSomeStuff() as List<Obj>;
    }

    private List<ObjBase> getSomeStuff()
    {
       return new List<ObjBase>();
    }

}

En su lugar tengo que hacer esto:

internal class ObjBase
   {
   }

internal class Obj : ObjBase
   {
   }

internal class ObjManager
{
    internal List<Obj> returnStuff()
    {
       List<ObjBase> returnedList = getSomeStuff();
       List<Obj> listToReturn = new List<Obj>(returnedList.Count);
       foreach (ObjBase currentBaseObject in returnedList)
       {
          listToReturn.Add(currentBaseObject as Obj);
       }
       return listToReturn;
    }

    private List<ObjBase> getSomeStuff()
    {
       return new List<ObjBase>();
    }
}

Recibo el siguiente error en Visual Studio 2008 (acortado para facilitar la lectura):

No se puede convertir el tipo 'Lista' a 'Lista' mediante una conversión de referencia, conversión de boxeo, conversión de unboxing, conversión de ajuste o conversión de tipo nulo

Gracias.

Respuestas a la pregunta(11)

Su respuesta a la pregunta