using System.Collections.Generic;
public static void Main()
MapperConfiguration _config = new MapperConfiguration(cfg =>
cfg.AddProfile<PersonDetailsProfile>();
IMapper _mapper = _config.CreateMapper();
PersonDetails src = new PersonDetails
PersonItems = new PersonItems
ItemColors = new List<string> { "White", "Black", "Red" }
List<Details> dest = _mapper.Map<List<Details>>(src);
Console.WriteLine(JsonConvert.SerializeObject(dest, Formatting.Indented));
public class PersonDetailsProfile : Profile
public PersonDetailsProfile()
RegisterPersonDetailstoDetailsObjectList();
public void RegisterPersonDetailstoDetailsObjectList()
CreateMap<PersonDetails, Details>()
.ForMember(d => d.PersonCode, src=> src.MapFrom(src => src.PersonCode))
.ForMember(d => d.ItemCode, src => src.MapFrom(src => src.PersonItems.ItemCode))
.ForMember(d => d.ItemName, src => src.MapFrom(src => src.PersonItems.ItemName));
CreateMap<PersonDetails, List<Details>>()
.ConvertUsing((src, dest, ctx) =>
dest = new List<Details>();
foreach (string itemColor in src.PersonItems.ItemColors)
var details = ctx.Mapper.Map<Details>(src);
details.ItemColor = itemColor;
public class PersonDetails
public PersonItems PersonItems { get; set; }
public int CreatedBy { get; set; }
public string PersonCode { get; set; }
public string ItemCode { get; set; }
public List<string> ItemColors { get; set; }
public string ItemName { get; set; }
public string SellerCode { get; set; }
public Details details { get; set; }
public string ItemCode { get; set; }
public string ItemColor { get; set; }
public string ItemName { get; set; }
public string PersonCode { get; set; }