逗号分隔的字符串到 int Automapper 列表

问题描述 投票:0回答:2
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列表

请提供任何有价值的意见。谢谢你。

c# automapper
2个回答
5
投票

尝试使用一种方法在映射器类内部进行解析:

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();
}

0
投票

通常,要将

string
转换为
int
列表,我会使用
Linq
:

var str = "1,2,3,4";
var lst = str.Split(',').Select(int.Parse).ToList();

您可以以任何您想要的方式使用该列表:)

© www.soinside.com 2019 - 2024. All rights reserved.