0

我有两个包含相同字段的类,但是一个从其他地方继承了一些属性,而另一个没有。

我已经使用“ZEUS_ResearchStocksHistory”类创建了一个通用列表,但是我需要将所有字段克隆到另一个列表“ZEUS_ResearchStocksHistoryWithExcel”。我不想遍历一个列表中的每个字段并填充另一个,或者编写某种 linq join,必须有更快的方法吗?

我不能在两个实例中使用同一个类的原因是,当继承 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; }
}

这可能吗?

谢谢

4

2 回答 2

1

你看过automapper吗?

来自 codeproject 的示例

CustomerViewItem customerViewItem = 
   Mapper.Map<Customer, CustomerViewItem>(customer);
于 2013-02-18T12:43:14.203 回答
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));
于 2013-02-18T12:43:09.127 回答