【问题标题】:AutoMapping Array to a List将数组自动映射到列表
【发布时间】:2014-08-23 17:53:18
【问题描述】:
class A
{
  public List<string> list;
}

class B
{
  public string[] array;
}

你会如何映射这个?

我试过了

CreateMap<A,B>();

这样不行

【问题讨论】:

  • b.array = a.list.ToArray() ?

标签: c# arrays collections automapper


【解决方案1】:

您的第一个问题是班级成员不匹配。如果他们这样做了,我想这会奏效。如果没有,你只需要指定你的映射而不是让 Automapper 推断它:

CreateMap<A,B>()
    .ForMember(d => d.array, opts => opts.MapFrom(s => s.list.ToArray());

【讨论】:

  • 集合不是字符串,而是两个不同名称空间的 NameValueCollection,所以我假设它们也需要映射。有什么想法吗?
  • 是的,这是因为名称不匹配,它与数组/列表无关。 @Proximo 您可能想要更新您的问题以包含实际的集合类型。
  • 我打算这样做,但我想出了如何分别映射不同的内部集合。这个答案拯救了一天。
【解决方案2】:

一个快捷方式,一个vb.net版本

CreateMap(Of A, B)().ForMember(Function(d) d.array, Sub(opts) opts.MapFrom(Function(s) s.list.ToArray()))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 2019-01-16
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多