public partial class Source()
{
...............
public string Assignees { get; set; }
...................
}
public partial class Destination
{
...............
public List<int> Resources { get; set; }
...................
}
我像这样映射这些类
Mapper.CreateMap<Source, Destination>().ForMember(x => x.DestID, y => y.MapFrom(z => z.SrcID));//Automapper version 4.2.1.0
我得到了所有值的预期结果,但问题在于源中的字段Assignees,它是逗号分隔的字符串。它包含类似 “1,4,6,8”
的数据我的期望:
我希望它们在映射发生时转换为int列表。
请提供任何有价值的意见。谢谢你。
尝试使用一种方法在映射器类内部进行解析:
using System.Linq;
Mapper.CreateMap<Source, Destination>()
.ForMember(x => x.Resources, y => y.MapFrom(z => getAssignees(z.Assignees)));
private List<int> getAssignees(string model)
{
if (string.IsNullOrEmpty(model))
{
return null;
}
return model.Split(',').Select(int.Parse).ToList();
}
通常,要将
string
转换为 int
列表,我会使用 Linq
:
var str = "1,2,3,4";
var lst = str.Split(',').Select(int.Parse).ToList();
您可以以任何您想要的方式使用该列表:)