C#类型的转换:Converter<TInput, TOutput> 委托的使用
2015-03-26 10:43
393 查看
Converter<TInput, TOutput> 委托
表示将对象从一种类型转换为另一种类型的方法。
此委托由 Array 类的 ConvertAll<TInput, TOutput> 方法和 List<T> 类的 ConvertAll<TOutput> 方法使用,将集合中的每个元素从一种类型转换为另一种类型。https://msdn.microsoft.com/zh-cn/library/kt456a2y.aspx
语法:
类型参数
TInput:要转换的对象类型
TOutput:要将输入对象转换的类型
小实例:
还不知道这个方法之前我将string[]转List<DateTime>是这么写的
现在可以这么写
先看看ConvertAll方法
表示将对象从一种类型转换为另一种类型的方法。
此委托由 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();
相关文章推荐
- C#_delegate - Pair<T> & 简单顺序逆序 & 方法委托(在Pair类下)&枚举类型 混搭使用
- C#使用反射将DataTable转换List<T>
- Jeecg中使用<t: dgCol>标签的自动构造查询条件时出现类型转换错误的解决办法。
- 【C#】List<T>类型强制转换
- C#读取数据库返回泛型集合 把DataSet类型转换为List<T>泛型集合
- C#Nullable<T>可空的值类型,C#中的?使用整理
- 读<<CLR via C#>>总结(5) 如何合理使用类型的可见性和成员的可访问性来定义类
- 深入理解 c# 第一章 使用IComparer<Product>委托 对 List <Product> 进行排序
- 深入理解 c# 第五章 匿名方法用于Action<T>委托类型 反转字符 求平方根 求平均数
- C#读取数据库返回泛型集合 把DataSet类型转换为List<T>泛型集合
- 《Effective C#》读书笔记——条目27:让类型支持序列化<使用C#表达设计>
- 《Effective C#》读书笔记——条目3:推荐使用is或as而不是强制转换类型<C#语言习惯>
- C#读取数据库返回泛型集合 把DataSet类型转换为List<T>泛型集合
- [转]C# 中使用委托对List<>进行排序和筛选
- 复习扩展方法 涉及委托,这里我使用自定义委托类型 public delegate bb MyFunc<in T,out bb> (T arg)
- 读<<CLR via C#>>总结(2) 对象创建的原理和两种类型转换方法
- <转载>大白话系列之C#委托与事件讲解(序言)
- <转载>大白话系列之C#委托与事件讲解(一)
- C#.NET的Linq查询、lambda、委托:Func<>和Action
- 如何声明和使用 Func<T1, T2, TResult> 委托