首页 > 其他 > 详细

Converter<TInput, TOutput> 委托的使用

时间:2015-03-26 12:21:40      阅读:166      评论:0      收藏:0      [点我收藏+]

Converter<TInput, TOutput> 委托

表示将对象从一种类型转换为另一种类型的方法。

此委托由 Array 类的 ConvertAll<TInput, TOutput> 方法和 List<T> 类的 ConvertAll<TOutput> 方法使用,将集合中的每个元素从一种类型转换为另一种类型。https://msdn.microsoft.com/zh-cn/library/kt456a2y.aspx

语法:

 

public delegate TOutput Converter<in TInput, out TOutput>(TInput input)

 

类型参数

TInput:要转换的对象类型

TOutput:要将输入对象转换的类型

 

 

还不知道这个方法之前我将string[]转List<DateTime>是这么写的

//将这样的字符串需要使用DateTime[]或List<DateTime>包装起来
string dates="1992-1-1#2001-1-1#2003-2-2"
string[] reqtimes= dates.Split(new string[]{"#"},StringSplitOptions.RemoveEmptyEntries);
List<DateTime> times = new List<DateTime>();
foreach (var item in reqtimes)
{
times.Add(Convert.ToDateTime(item));
}

现在可以这么写

 先看看ConvertAll方法

技术分享

 

//对于委托作为参数,那么写法就好多了
//来复习一下委托写法

//1.0 
Array.ConvertAll(reqtimes, new Converter<string, DateTime>(ToDateTime));
Array.ConvertAll(reqtimes,ToDateTime);
//定义一个与委托相同签名的方法
private DateTime ToDateTime(string str) { return Convert.ToDateTime(str); }

 //2.0 进化
Array.ConvertAll(reqtimes, new Converter<string, DateTime>(c =>Convert.ToDateTime(c))); 

//3.0 最终版 
List<DateTime> list=Array.ConvertAll(reqtimes, c =>Convert.ToDateTime(c)).ToList();

  

Converter<TInput, TOutput> 委托的使用

原文:http://www.cnblogs.com/Sunlimi/p/4365920.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!