Automapper copy List to List

Kri*_*s-I 45 c# automapper automapper-2

我有这些课程:

public class Person {
    public int Id{ get; set ;}
    public string FirstName{ get; set ;}
    public string LastName{ get; set ;}
}

public class PersonView {
    public int Id{ get; set ;}
    public string FirstName{ get; set ;}
    public string LastName{ get; set ;}
}
Run Code Online (Sandbox Code Playgroud)

我定义了这个:

Mapper.CreateMap<Person, PersonView>();
Mapper.CreateMap<PersonView, Person>()
    .ForMember(person => person.Id, opt => opt.Ignore());
Run Code Online (Sandbox Code Playgroud)

这是有用的:

PersonView personView = Mapper.Map<Person, PersonView>(new Person());
Run Code Online (Sandbox Code Playgroud)

我想做同样但List<Person> to List<PersonView>但是我没有找到正确的语法.

谢谢

Jus*_*ner 92

一旦你创建了地图(你已经完成了,你不需要重复列表),它就像:

List<PersonView> personViews = 
    Mapper.Map<List<Person>, List<PersonView>>(people);
Run Code Online (Sandbox Code Playgroud)

您可以在AutoMapper文档中阅读有关列表和数组的更多信息.

  • 这里有趣的是,源模板可以是最通用的类​​型,例如“ PersonView []”,输出可以是任何其他受支持的类型,例如“ IEnumerable,ICollection,IList等”。 (2认同)

Ogg*_*las 8

对于AutoMapper 6 <它将是:

在StartUp中:

Mapper.Initialize(cfg => {
    cfg.CreateMap<Person, PersonView>();
    ...
});
Run Code Online (Sandbox Code Playgroud)

然后像这样使用它:

List<PersonView> personViews = Mapper.Map<List<PersonView>>(people);
Run Code Online (Sandbox Code Playgroud)