C# - AutoMapper之不同类型的转换
一、Dto & Model约定
class TestDto
{
public string Name { get; set; }
public int Age { get; set; }
public List<string> Candidates { get; set; }
} class TestModel
{
public string Name { get; set; }
public int Age { get; set; }
public List<CandidateModel> Candidates { get; set; }
}
class CandidateModel
{
public DateTime StartTime { get; set; }
public string Candidate { get; set; }
}
二、需求:筛选出TestModel中StartTime小于当前时间的候选人,并将其传输给TestDto的Candidates字段。
class Program
{
static void Main(string[] args)
{
var testModel = new TestModel()
{
Name = "Frankie",
Age = ,
Candidates = new List<CandidateModel>()
{
new CandidateModel(){StartTime = new DateTime(, , , , , ), Candidate = "贝贝"},
new CandidateModel(){StartTime = new DateTime(, , , , , ), Candidate = "asan"},
new CandidateModel(){StartTime = new DateTime(, , , , , ), Candidate = "pangzi"}
}
};
// DataTime.Now : {2018/10/21 21:51:12}
testModel.Candidates = testModel.Candidates.Where(_ => _.StartTime < DateTime.Now).ToList(); Mapper.Initialize(_ => _.CreateMap<TestModel, TestDto>()
.ForMember(s => s.Candidates,
d => d.MapFrom(x => x.Candidates.Select(y => y.Candidate)))); var testDto = Mapper.Map<TestDto>(testModel);
}
}
Result:

C# - AutoMapper之不同类型的转换的更多相关文章
- 09.AutoMapper 之自定义类型转换器(Custom Type Converters)
https://www.jianshu.com/p/47054d92db2a 自定义类型转换器(Custom Type Converters) 有时需要完全控制一种类型到另一种类型的转换.这一般发生在 ...
- spring类型自动转换——@InitBinder和Converter
spring有2种类型转换器,一种是propertyEditor,一种是Converter.虽然都是类型转换,但是还是有细微差别. 所以这里以一个例子的形式来分析一下这2种类型转换的使用场景和差别. ...
- C#高级编程笔记 2016年10月8日运算符和类型强制转换
1.checked和unchecked 运算符 C#提供了checked 和uncheckde 运算符.如果把一个代码块标记为checked, CLR就会执行溢出检查,如果发生溢出,就抛出overfl ...
- SpringMVC对日期类型的转换
在做web开发的时候,页面传入的都是String类型,SpringMVC可以对一些基本的类型进行转换,但是对于日期类的转换可能就需要我们配置. 1.如果查询类使我们自己写,那么在属性前面加上@Date ...
- [改善Java代码]避开基本类型数组转换列表陷阱
开发中经常用到Arrays和Collections这两个工具类. 在数组和列表之间进行切换.非常方便.但是也会遇到一些问题. 看代码: import java.util.Arrays; import ...
- [改善Java代码]不要让类型默默转换
建议23:不要让类型默默转换 public class Client { // 光速是30万公里/秒,常量 public static final int LIGHT_SPEED = 30 * 100 ...
- 【转】java中byte数组与int类型的转换(两种方式)----不错
原文网址:http://blog.csdn.net/piaojun_pj/article/details/5903009 java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法, ...
- javascript 操作符类型隐性转换
javascript 操作符类型隐性转换 (一).一元操作符只能操作一个值的操作符叫做一元操作符1.递增和递减操作符a. 在应用于一个包含有效数字字符的字符串时,先将其转换为数字值,再执行加减1的操作 ...
- C语言指针类型 强制转换
关于C语言指针类型 强制转换 引用一篇文章: C语言中,任何一个变量都必须占有一个地址,而这个地址空间内的0-1代码就是这个变量的值.不同的数据类型占有的空间大小不一,但是他们都必须有个地址,而这个 ...
随机推荐
- Ansible CMDB
Ansible CMDB CMDBAnsible-CMDB CMDB 文章目录 1. 简介 2. 安装 2.1. 1. 安装 ansible 2.2. 2. 下载并安装 ansible-cmdb 3. ...
- Netty 客户端使用指数退避机制实现重连
指数退避 可以理解为每次重连失败时,就把重连时间设置为之前的指数级别.例如 2 秒,4 秒,8 秒...... 亚马逊AWS关于指数退避的两篇文章介绍 AWS 中的错误重试和指数退避 Exponent ...
- 深入学习 Intellij IDEA 调试技巧
程序员的日常工作除了写代码之外,很大一部分时间将会在查找 BUG,解决问题.查找 BUG,离不开在 IDE 中调试代码.熟练的掌握调试技巧,可以帮助我们减少查找时间,快速定位问题. 在 IDEA 中调 ...
- 【Java】Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 1099
详细信息如下: Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: ...
- Ubuntu+VMWare 学习中遇到的问题
1. 虚拟机中Ubuntu分辨率 / 设置分辨率出现Unknown Display VMware中Ubuntu 出现Unknown Display问题解决 1.1 命令无法保存分辨率设置: xrand ...
- 自定义SWT控件二之自定义多选下拉框
2.自定义下拉多选框 package com.view.control.select; import java.util.ArrayList; import java.util.HashMap; im ...
- 在表格中添加text便加框
private void createTableText(Table table) { TableEditor editor = new TableEditor(table); for (int i ...
- [ PyQt入门教程 ] PyQt5基本控件使用:消息弹出、用户输入、文件对话框
本文主要介绍PyQt界面实现中常用的消息弹出对话框.提供用户输入的输入框.打开文件获取文件/目录路径的文件对话框.学习这三种控件前,先想一下它们使用的主要场景: 1.消息弹出对话框.程序遇到问题需要退 ...
- Android使用com.google.android.cameraview.CameraView进行拍照
import android.Manifest;import android.annotation.SuppressLint;import android.content.Context;import ...
- SpringMVC的流程
Springmvc的流程 1.用户发送请求至前端控制器DispatcherServlet 2.DispatcherServlet收到请求后,调用HandlerMapping处理映射器,请求获取Hand ...