如何在C#中使用AutoMapper映射2个不同大小的集合?

问题描述 投票:0回答:1

假设源数组有两个元素,目标数组有五个元素,如何使用automapper进行映射,使映射后目标数组仍然有五个元素?

例如:

class A {
  public int Id;
  public string Name;
}

class B {
  public int Id;
  public string Name;
  public DateTime? DateOfBirth;
}

var la = new List<A> {
  new A { 1, "A1" },
  new A { 2, "A2" }
};

var lb = new List<B> {
  new B { 1, "B1", new DateTime(2011, 2, 12) },
  new B { 2, "B2", new DateTime(2011, 3, 12) },
  new B { 3, "B3", new DateTime(2011, 4, 12) },
  new B { 4, "B4" },
  new B { 5, "B5" }
};

映射后,类似

mapper.Map(la, lb);

我想得到这样的磅:

{
  { 1, "A1", "2011-2-12" },
  { 2, "A2", "2011-3-12" },
  { 3, "B3", "2011-4-12" },
  { 4, "B4" },
  { 5, "B5" }
};

但是,我实际得到的磅看起来像

{
  { 1, "A1", "2011-2-12" },
  { 2, "A2", "2011-3-12" }
}

如何做?我认为关键是如何创建合适的自动映射器“配置文件”???预先感谢!

c# list dictionary automapper
1个回答
0
投票

您有

la
lb
,在我们的示例中,
la
的元素少于
lb
。所以,你可以

myResult.AddRange(lb.Skip(myResult.Count()));

假设

Map
的结果是可枚举的。

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