【发布时间】:2017-12-04 15:31:03
【问题描述】:
我必须转换两个 IEnumerables 对象,我们称之为 Obj1 和 Obj2。
为此,我使用 automapper 直接投射两个列表,如下所示:
config = new MapperConfiguration(cfg => {
cfg.CreateMap<IEnumerable<Obj1>, IEnumerable<Obj2>>();
});
mapper = config.CreateMapper();
但是我有一个问题,因为我想给 Obj2 列表中的所有元素一个默认值。有没有办法做到这一点保持 IEnumerable 演员?
我想到的唯一解决方案是为元素本身创建映射器,然后在 Obj1 列表中的所有元素之间进行迭代并转换为 Obj2 类型,如下所示:
config = new MapperConfiguration(cfg => {
cfg.CreateMap<Obj1, Obj2>();
});
mapper = config.CreateMapper();
然后,在 Obj1 列表中的一个 foreach 元素中,强制转换并添加到 Obj2 类型的列表中。
我想直接在mapper配置中做这个,有没有办法做到,保持IEnumerable映射?。
谢谢。
【问题讨论】:
标签: c# .net linq automapper ienumerable