【发布时间】:2020-03-05 21:38:09
【问题描述】:
我有两节课
public class SourceClass
{
public Guid Id { get; set; }
public string Provider { get; set; }
}
public class DestinationClass
{
public Guid Id { get; set; }
public List<string> Provider { get; set; }
}
我已经使用以下代码初始化了我的映射
CreateMap<SourceClass, DestinationClass>();
然后在我的控制器中,我有:
Mapper.Map<List<DestinationClass>>(requests)
其中“requests”是传递给我的控制器的 SourceClass 对象的列表。
我的问题是,如何将 SourceClass 中的 Provider(字符串类型)映射到 Destination 类中 List 类型的 Provider?
源类中的提供者将始终是单个字符串,而目标类中的提供者将始终是单个字符串的列表。
这是我在映射配置中尝试过的:
CreateMap<SourceClass, DestinationClass>().ForMember(destinationMember => destinationMember.Provider,
memberOptions => memberOptions.MapFrom(src => {
return string.IsNullOrEmpty(src.Provider) ? [""] : src.Provider.ToList());
【问题讨论】:
-
你能用英语描述字符串如何映射到字符串列表吗?它会变成一个包含该单个字符串的列表吗?
-
@Amy 正确,所以如果我的源类中的字符串是“Test”,那么它应该是我的目标类中的 ["Test"]。
-
你到底遇到了什么问题?
-
@TylerHundley 我不太确定该怎么做,所以我尝试使用 .ForMember 和三元运算符,但无法理解为什么它不起作用。
-
如果字符串为空或空,它是一个空列表吗?或者它是一个空列表?或者列表是否包含空字符串?
标签: c# conditional-statements automapper