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

时间:2016-10-07 07:41:29

标签: c# automapper

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

我获得了所有值的预期结果,但问题出在Source中的字段 Assignees ,这是逗号分隔的字符串。它包含&#34; 1,4,6,8&#34;

等数据

我的期望:

我希望他们在映射时转换为 int 列表。

请提供任何有价值的输入。谢谢。

2 个答案:

答案 0 :(得分:2)

尝试使用方法在mapper类中解析:

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

        }

答案 1 :(得分:0)

通常,要将string转换为int列表,我会使用Linq

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

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