分享.NET系统开发过程中积累的扩展方法

.NET 3.5提供的扩展方法特性,可以在不修改原类型代码的情况下扩展它的功能。下面分享的这些扩展方法大部分来自于Code Project或是Stackoverflow,.NET为此还有一个专门提供扩展方法的网站(extensionMethod)。

涵盖类型转换,字符串处理,时间转化,集合操作等多个方面的扩展。

1 TolerantCast 匿名类型转换

这个需求来源于界面中使用BackgroundWorker,为了给DoWork传递多个参数,又不想定义一个类型来完成,于是我会用到TolerantCast方法。参考如下的代码:

2 ForEach 集合操作

这个方法的定义很简单但也很实用,它的使用方法如下:

扩展方法的源代码定义只有一行,源代码如下:

当我想对一个集合中的每个元素执行相同的操作时,常常会借助于此方法实现。

 

3 Capitalize 字符串首字母大写

直接对字符串操作,将字符串的首字母改成大写,源代码参考如下:

 

4 ToDataTable 强类型对象集合转化为DataTable

开发中经常会遇到将List<Entity>转化为DataTable,或是反之将DataTable转化为List<Entity>,stackoverflow上有很多这个需求的代码,参考下面的程序代码:

 

5 SetAllValues 给数组中的每个元素赋值

实现给数组中的每个元素赋相同的值。

 

6 ToXml 序列化对象为Xml格式

可以将一个对象序列化为Xml格式的字符串,保存对象的状态。

 

7 Between 值范围比较

可以判断一个值是否落在区间范围值中。

类似这样的操作,下面的方法是取2个值的最大值。

8 StartDate DueDate 开始值或末值

业务系统中常常会用到时间比较,如果系统是用DateTime.Now变量与DateTime.Today来作比较,前者总是大于后者的,为此需要做一个简单转化,根据需要将值转化为开始值或末值,也就是0点0分0秒,或是23时59分59秒。

9 First Day Last Day 月的第一天或是最后一天

10 Percent 百分比值

计算前一个数值占后一个数值的百分比,常用于统计方面。

扩展方法源代码下载:http://files.cnblogs.com/files/JamesLi2015/ExtensionMethod.zip

1 收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部