C # Преобразование списка <ObjBase> в список <Obj>

Почему я не могу броситьList какList? Почему не работает следующее:

internal class ObjBase
   {
   }

internal class Obj : ObjBase
   {
   }   

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

    private List getSomeStuff()
    {
       return new List();
    }

}

Вместо этого я должен сделать это:

internal class ObjBase
   {
   }

internal class Obj : ObjBase
   {
   }

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

    private List getSomeStuff()
    {
       return new List();
    }
}

Я получаю следующую ошибку в Visual Studio 2008 (сокращено для удобства чтения):

Невозможно преобразовать типСписок' кСписок' с помощью преобразования ссылок, преобразования в бокс, преобразования в распаковку, преобразования в оболочку или преобразования нулевого типа

Благодарю.

Ответы на вопрос(11)

Ваш ответ на вопрос