9.集合和数组映射

在项目中,集合和数组使用的很多的,继续下来就讲讲他们的映射,很简单。

  1. /// <summary>
  2. /// 源对象
  3. /// </summary>
  4. public class Source
  5. {
  6. public int Value { get; set; }
  7. public string Text { get; set; }
  8. }
  9. /// <summary>
  10. /// 目标对象
  11. /// </summary>
  12. public class Destination
  13. {
  14. public int Value { get; set; }
  15. public string Text { get; set; }
  16. }
  17. /// <summary>
  18. /// 集合和数组映射测试类
  19. /// </summary>
  20. [TestClass]
  21. public class ListAndArrayMaping
  22. {
  23. [TestMethod]
  24. public void ListMapingTest()
  25. {
  26. //初始化映射 和单个对象的映射一样
  27. Mapper.Initialize(cfg => cfg.CreateMap<Source, Destination>());
  28. var srcList = new List<Source> {
  29. new Source { Value = 5,Text="Five" }
  30. };
  31. //在这里指定类型参数,拿第一个为例;源类型:List<Source>;目标类型:IEnumerable<Destination>;
  32. // List映射到IEnumerable;
  33. IEnumerable<Destination> ienumerableDest1 = Mapper.Map<List<Source>, IEnumerable<Destination>>(srcList);
  34. // List映射到ICollection;
  35. ICollection<Destination> icollectionDest1 = Mapper.Map<List<Source>, ICollection<Destination>>(srcList);
  36. // List映射到IList;
  37. IList<Destination> ilistDest1 = Mapper.Map<List<Source>, IList<Destination>>(srcList);
  38. // List映射到List;
  39. List<Destination> listDest1 = Mapper.Map<List<Source>, List<Destination>>(srcList);
  40. // List映射到Array;
  41. Destination[] arrayDest1 = Mapper.Map<List<Source>, Destination[]>(srcList);
  42. //验证List映射到IEnumerable的结果
  43. foreach (var m in ienumerableDest1)
  44. {
  45. Assert.AreEqual("Five", m.Text);//通过
  46. Assert.AreEqual(5, m.Value); //通过
  47. }
  48. //验证List映射到List结果
  49. foreach (var m in listDest1)
  50. {
  51. Assert.AreEqual("Five", m.Text); //通过
  52. Assert.AreEqual(5, m.Value); //通过
  53. }
  54. }
  55. }

AutoMapper还支持以下集合类型的映射:

  • IEnumerable
  • IEnumerable
  • ICollection
  • ICollection
  • IList
  • IList
  • List
  • Arrays

以后在项目中使用起来就更加方便了!!!

AutoMapper之集合和数组映射的更多相关文章

  1. Scala学习——数组/映射/元组

    [<快学Scala>笔记] 数组 / 映射 / 元组 一.数组 1.定长数组 声明数组的两种形式: 声明指定长度的数组 val 数组名= new Array[类型](数组长度) 提供数组初 ...

  2. MyBatis传入集合 list 数组 map参数的写法

    foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元素的属性主要有item,index,collection,open,separator,close.ite ...

  3. [Swift]多维数组的表示和存储:N维数组映射到一维数组(一一对应)!

    数组:有序的元素序列. 若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量.用于区分数组的各个元素的数字编号称为下标.数组 ...

  4. 获取单列集合,双列集合,数组的Stream流对象以及简单操作

    获取流对象 获取单列集合,双列集合,数组的流对象 单列集合获取流对象: 1.java.util.Collection接口中加入了default方法stream()获取流对象,因此其所有实现类均可通过此 ...

  5. JAVASE(十四) 集合: 数组和集合、Collection、Iterator、List、Set、Map

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.数组和集合 1.1 内存中对数据进行存储和管理的“容器”:数组,集合 1.2 数组存储的特点和缺点 ...

  6. 【Java学习笔记】集合转数组---toArray()

    package p2; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ...

  7. C#对多个集合和数组的操作(合并,去重,判断)

    在开发过程中.数组和集合的处理是最让我们担心.一般会用for or foreach 来处理一些操作.这里介绍一些常用的集合跟数组的操作函数.  首先举例2个集合A,B. List<int> ...

  8. 创建泛类集合List以及数组转集合,集合转数组的应用

    List<int> list = new List<int>(); list.Add(); list.Add(); list.Add(); list.AddRange(, , ...

  9. java 中集合和数组互相转换

    package test; import java.util.Arrays;import java.util.List; /** * Created by Administrator on 2016/ ...

随机推荐

  1. php支持连接sqlserver数据库

    php支持连接sqlserver数据库 1.软件配置 Win7 64 +wampserver2.2d-x32+SQL Server 2008 R2数据库,wamp2.2中的php版本是5.3.10. ...

  2. delphi 过滤开头 结尾 全部 空格的函数

    function TrimAnsi(const S: AnsiString): Ansistring; var I, L: Integer; begin L := Length(S); I := ; ...

  3. 二、winForm-DataGridView操作——DataGridView 操作、属性说明

    注册:Form加载窗体代码 /// <summary> /// 窗体加载Form1 /// </summary> /// <param name="sender ...

  4. bower 安装后 jade 引用404问题

    这个问题困扰我接近2小时,这是我在stackoveflow 上面挖到的 原文地址:http://stackoverflow.com/questions/21821773/configure-node- ...

  5. 林纳斯·托瓦兹和Linux行为准则:揭穿7个谬论

    欢迎访问网易云社区,了解更多网易技术产品运营经验. 作者:史蒂芬·沃恩·尼古斯(Steven J.Vaughan-Nichols),从事Linux开源工作 时间:格林威治标准时间2018年9月25日— ...

  6. 微服务 - Eureka注册中心

    我们来解决微服务的第一问题,服务的管理. 服务中心对外提供服务,需要对外暴露自己的地址.而consumer(调用者)需要记录服务提供者的地址.将来地址出现变更,还需要及时更新.这在服务较少的时候并不觉 ...

  7. js中获取当前页面的url

    在js中可以通过下面的方式获取当前页面url的相关信息 var item = window.location // 返回的是对象, 这个对象里有各种关于url的信息 var url = window. ...

  8. Python小白学习之路(二十四)—【装饰器】

    装饰器 一.装饰器的本质 装饰器的本质就是函数,功能就是为其他函数添加附加功能. 利用装饰器给其他函数添加附加功能时的原则: 1.不能修改被修饰函数的源代码        2.不能修改被修饰函数的调用 ...

  9. AndroidStudio配置LitePal

    配置,许多书上还有教程都忽略了将LitePal下载下来和拷贝的过程,这里写一个详细的课程 首先,前往GitHub,下载LitePal的包. 然后解压,会看到这个 进入download 自己选个版本,然 ...

  10. MVC3学习:基于ObjectContext的数据增删改查操作

    数据库里面的表格,映射为对应的实体类.实体类的编写,可以自己手动编写,也可以使用工具或插件自动生成.在MVC3里面,我们可以使用VS的POCO插件自动生成实体类.如下图: 关于POCO插件的安装与使用 ...