9.集合和数组映射
在项目中,集合和数组使用的很多的,继续下来就讲讲他们的映射,很简单。
/// <summary> /// 源对象 /// </summary> public class Source { public int Value { get; set; } public string Text { get; set; } } /// <summary> /// 目标对象 /// </summary> public class Destination { public int Value { get; set; } public string Text { get; set; } } /// <summary> /// 集合和数组映射测试类 /// </summary> [TestClass] public class ListAndArrayMaping { [TestMethod] public void ListMapingTest() { //初始化映射 和单个对象的映射一样 Mapper.Initialize(cfg => cfg.CreateMap<Source, Destination>()); var srcList = new List<Source> { new Source { Value = 5,Text="Five" } }; //在这里指定类型参数,拿第一个为例;源类型:List<Source>;目标类型:IEnumerable<Destination>; // List映射到IEnumerable; IEnumerable<Destination> ienumerableDest1 = Mapper.Map<List<Source>, IEnumerable<Destination>>(srcList); // List映射到ICollection; ICollection<Destination> icollectionDest1 = Mapper.Map<List<Source>, ICollection<Destination>>(srcList); // List映射到IList; IList<Destination> ilistDest1 = Mapper.Map<List<Source>, IList<Destination>>(srcList); // List映射到List; List<Destination> listDest1 = Mapper.Map<List<Source>, List<Destination>>(srcList); // List映射到Array; Destination[] arrayDest1 = Mapper.Map<List<Source>, Destination[]>(srcList); //验证List映射到IEnumerable的结果 foreach (var m in ienumerableDest1) { Assert.AreEqual("Five", m.Text);//通过 Assert.AreEqual(5, m.Value); //通过 } //验证List映射到List结果 foreach (var m in listDest1) { Assert.AreEqual("Five", m.Text); //通过 Assert.AreEqual(5, m.Value); //通过 } } }
AutoMapper还支持以下集合类型的映射:
- IEnumerable
- IEnumerable
- ICollection
- ICollection
- IList
- IList
- List
- Arrays
以后在项目中使用起来就更加方便了!!!
来源:https://www.cnblogs.com/wuyunblog/p/6666485.html