Как сопоставить список перечислений со строковым списком с помощью automapper

#c# #automapper

#c# #automapper

Вопрос:

У меня есть класс A и класс B:

 class A
{
    public List<TypeEnum> Types { get; set; }
    ...

}

class B
{
    public List<string> TypesString { get; set; }
    ...
}
  

Я пытаюсь сопоставить список со списком:

CreateMap<ClassA, ClassB>() .ForMemebr(назначение => назначение.TypesString, m => m.ConvertUsing(источник => (байт) источник.Типы).toString()))

Результат: желаемым результатом должно быть успешное сопоставление списка перечислений со списком строк, например: List<string> => ["1","2","3","5"]

Как я могу это сделать?

Ответ №1:

Попробуйте следующую конфигурацию сопоставления:

 CreateMap<ClassA, CLassB>().ForMember(destination => destination.TypesString, 
                                      opt => opt.MapFrom(s => s.Types.Select(x => ((byte)x))));
  

Комментарии:

1. Вы можете удалить оба ToString и ToList . AM сделает это за вас.