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 (сокращено для удобства чтения):
Невозможно преобразовать типСписок' кСписок' с помощью преобразования ссылок, преобразования в бокс, преобразования в распаковку, преобразования в оболочку или преобразования нулевого типа
Благодарю.