using System.Collections.Generic;
using Google.Protobuf.Collections;
public List<View1> List{get;set;}
public MapField<string, View2> Fields{get;set;}
public string Name{get;set;}
public string LastName{get;set;}
public string NationalCode{get;set;}
public string Name{get;set;}
public string LastName{get;set;}
public string NationalCode{get;set;}
public static void Main()
var list = new List<View1>()
var config = new MapperConfiguration(cfg => {
cfg.CreateMap<View1, View2>();
cfg.CreateMap<Wrapper1, Wrapper2>()
.ForMember(x=> x.Fields, x=> x.MapFrom(y=> y.List.ToDictionary(z=> z.NationalCode, w=> w)));
var mapper = config.CreateMapper();
var wrapper1 = new Wrapper1{ List= list};
var wrapper2 = mapper.Map<Wrapper2>(wrapper1);
Console.WriteLine(JsonConvert.SerializeObject(wrapper2));