C#小白使用AutoMapper 映射集合
C#使用AutoMapper 映射集合
不想看下面废话就点下面两个链接
我们会遇到一些问题,就是关于List如此类集合如何map的情况,很多人会在初始化的时候写成这样子
错误:
正确的:
其实只需要初始化一个类合类之间的转换就行了无须继续考虑其他的那么Auto支持哪些 集合类的转换呢?
如下列表:
- IEnumerable
- IEnumerable
- ICollection
- ICollection
- IList
- IList
- List
- Arrays
//第一步初始化
Mapper.Initialize(cfg =>
{
cfg.CreateMap<WorldA, WorldB>();
});
//声明一个集合
List<WorldA> worldAs = new List<WorldA>();
//声明一个对象,并赋值
WorldA world = new WorldA() { id = 1, wewe = 1.ToString() };
//将对象加入集合内部
worldAs.Add(world);
//开始搬运
var b = Mapper.Map<List<WorldA>, List<WorldB>>(worldAs);
//输出搬运后的值
Console.WriteLine(b[0].id);
完整代码点我看图
using AutoMapper;
using System;
using System.Collections.Generic;
namespace ConsoleApp4
{
class Program
{
static void Main(string[] args)
{
//第一步初始化
Mapper.Initialize(cfg =>
{
cfg.CreateMap<WorldA, WorldB>();
});
//声明一个集合
List<WorldA> worldAs = new List<WorldA>();
//声明一个对象,并赋值
WorldA world = new WorldA() { id = 1, wewe = 1.ToString() };
//将对象加入集合内部
worldAs.Add(world);
//开始搬运
var b = Mapper.Map<List<WorldA>, List<WorldB>>(worldAs);
//输出搬运后的值
Console.WriteLine(b[0].id);
Console.WriteLine("按任意键结束");
Console.ReadKey();
}
}
public class WorldA
{
public int id { get; set; }
public string wewe { get; set; }
}
public class WorldB
{
public int id { get; set; }
public string wewe { get; set; }
}
}