2
我不知道如果我问这个正确的方式,但这里是我想做的事:合并多态列表到一个列表,并获得派生类型
型号
public abstract class IncomingOrderBase
{
public string Summary { get; set; }
}
public class IncomingProductOrder : IncomingOrderBase
{
public Product Product { get; set; }
}
public class IncomingServiceOrder : IncomingOrderBase
{
public Service Service { get; set; }
}
public class Sale
{
public ICollection<IncomingProductOrder> ProductOrders { get; set; }
public ICollection<IncomingServiceOrder> ServiceOrders { get; set; }
public List<IncomingOrderBase> GetAllOrders()
{
var orders = this.ProductOrders +++PLUS+++ this.ServicesOrders;
return orders.ToList();
}
}
用法
foreach(var order in sale.GetAllOrders())
{
Console.WriteLine(order.GetType().Name);
//output = "ProductOrder" or "ServiceOrder" not "IncomingOrderBase"
}
如何编译两个(或更多)列出一个列表中,然后得到日原(衍生)型e结果列表?我想我使用Concat()
工作,但我真的很感激专家在这方面的例子。
我觉得第二个例子是很多清晰。除非有一些性能损失,否则我宁愿将它与.NET 4一起使用。 – zmbq 2012-02-21 21:02:53