我有两个包含相同字段的类,但是一个从其他地方继承了一些属性而另一个没有。
我使用类“ZEUS_ResearchStocksHistory”创建了一个通用列表,但是我需要将所有字段克隆到另一个列表“ZEUS_ResearchStocksHistoryWithExcel”。我不想循环遍历一个列表中的每个字段并填充另一个,或者编写某种linq连接,必须有更快的方法吗?
我不能在两个实例中使用相同类的原因是,在继承ExcelReport函数时,它会添加我在数据网格中显示此列表时不需要的其他字段。
internal class ZEUS_ResearchStocksHistory
{
public String Amendment { get; set; }
public String AmendedBy { get; set; }
public String Sedol { get; set; }
public String Date { get; set; }
}
internal class ZEUS_ResearchStocksHistoryWithExcel : ExcelReport
{
public String Amendment { get; set; }
public String AmendedBy { get; set; }
public String Sedol { get; set; }
public String Date { get; set; }
}
这可能吗?
由于
答案 0 :(得分:1)
你看过automapper吗?
CustomerViewItem customerViewItem =
Mapper.Map<Customer, CustomerViewItem>(customer);
答案 1 :(得分:0)
查看Automapper,其目的就是为了做到这一点。 Automapper在NuGet上运行。
http://lostechies.com/jimmybogard/2009/01/23/automapper-the-object-object-mapper/
你可以做一些简单的事情:
Mapper.CreateMap<ZEUS_ResearchStocksHistory, ZEUS_ResearchStocksHistoryWithExcel>();
var newObject = Mapper.Map<ZEUS_ResearchStocksHistory, ZEUS_ResearchStocksHistoryWithExcel>(oldObject);
或者,既然你说你有一个清单,你可以这样做:
var newList = oldList.Select(x => Mapper.Map<ZEUS_ResearchStocksHistory, ZEUS_ResearchStocksHistoryWithExcel>(x));