Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 自动将数组映射到列表 A类 { 公开名单; } B类 { 公共字符串[]数组; }_C#_Arrays_Collections_Automapper - Fatal编程技术网

C# 自动将数组映射到列表 A类 { 公开名单; } B类 { 公共字符串[]数组; }

C# 自动将数组映射到列表 A类 { 公开名单; } B类 { 公共字符串[]数组; },c#,arrays,collections,automapper,C#,Arrays,Collections,Automapper,你将如何绘制这张地图 我试过了 class A { public List<string> list; } class B { public string[] array; } CreateMap(); 这是行不通的您的第一个问题是类成员不匹配。如果他们这样做了,我想这会管用的。如果没有,您只需指定映射,而不是让Automapper推断: CreateMap<A,B>(); CreateMap() .ForMember(d=>d.array,opts=>o

你将如何绘制这张地图

我试过了

class A
{
  public List<string> list;
}

class B
{
  public string[] array;
}
CreateMap();

这是行不通的

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

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

您的第一个问题是类成员不匹配。如果匹配,我认为这会起作用。如果不匹配,您只需指定映射,而不是让Automapper推断:

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

有关快捷方式,请参阅vb.net版本

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

对于快捷方式,请使用vb.net版本

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

b.array=a.list.ToArray()
b.array=a.list.ToArray()
?集合不是一个字符串,而是两个不同名称空间的NameValueCollection,因此我假设它们也需要映射。有什么想法吗?是的,这是因为名称不匹配,它与数组/列表无关。@Proximo您可能想更新您的问题,以包括实际的集合类型。我本来打算这样做的,但我失败了计算出如何分别映射不同的内部集合。这个答案节省了时间。集合不是一个字符串,而是两个不同名称空间的NameValueCollection,因此我假设它们也需要映射。有什么想法吗?是的,这是因为名称不匹配,与数组/列表无关。@Proximo您可能需要更新您的问题以包含实际的收藏类型。我本来打算这样做,但我知道如何分别映射不同的内部收藏。这个答案节省了时间。