为简洁起见,我将在此处进行通用化。我有一个基类 - 评论 - 有一个孩子 - ShelfAwarenessReview。将子列表投射到父类型列表
我也有一个方法,它的签名是由一个接口要求:现在
public List<Review> GetReviews(string filePath)
{
XElement xmlDoc = XElement.Load(filePath);
var dtos = from item in xmlDoc.Descendants("message")
select new ShelfAwarenessReview()
{
PubDate = item.Element("meta").Attribute("permlinkdate").Value,
Summary = item.Element("meta").Element("summary").Value,
Isbn = item.Element("BookInfo").Element("ISBN").Value
};
List<Review> reviews = new List<Review>();
reviews = dtos.ToList();
return reviews;
}
,我得到的错误是List<ShelfAwarenessReview>
不能被隐式转换为List<Review>
。
我尝试了几种类型的铸造 - 或者,至少我以为我做过 - 并且不起作用。我认为,因为ShelfAwarenessReview是Review的一个孩子,所以这会起作用。毕竟,正如继承谚语所说,“所有的烤面包机都是家电,但不是所有的家电都是烤面包机”......
我需要做什么才能获得ShelfAwarenessReviews列表以退出方法列表其父类型(评论)?
只是一个FYI,调用此方法的代码并不关心它正在获取的类型评论。随后的代码将在任何情况下运行。
我很欣赏它大好时光。
祝福你,亲切的先生。该死的。我需要更好地理解协方差和上演。你是第一个,所以你得到我的批准检查。谢谢十亿。 –