Не знаю, правильно ли я спрашиваю, но вот что я хочу сделать:
Модель
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"
}
Как мне скомпилировать два (или более) списка в один список, а затем получить исходный (производный) тип из полученного списка? Я думаю, что он работал с использованием Concat()
, но я был бы очень признателен за пример эксперта по этому вопросу.