代码改变世界

随笔分类 - 扩展方法

c# 扩展方法 奇思妙用 高级篇 九:OrderBy(string propertyName, bool desc)

2012-01-15 18:41 by 鹤冲天, 26412 阅读, 收藏, 编辑
摘要:如题,本文实现 OrderBy(string propertyName, bool desc) 扩展方法,以弥补 Linq 原生排序方法的不足 阅读全文

c# 扩展方法奇思妙用基础篇十:IsEmpty、IsNotEmpty 扩展

2011-12-10 22:45 by 鹤冲天, 6531 阅读, 收藏, 编辑
摘要:IsEmpty、IsNotEmpty 扩展方法,用来确定序列是否包含元素。 阅读全文

你能指出这个 ForEach 扩展方法中的错误吗?

2011-10-07 16:06 by 鹤冲天, 4346 阅读, 收藏, 编辑
摘要:Linq 中没有原生的 ForEach 扩展方法,我们可以很轻松的扩展一个......但这个有返回值的实现中有错误的,你能指出吗? 阅读全文

c# 扩展方法奇思妙用基础篇九:Expression 扩展

2011-09-15 17:18 by 鹤冲天, 24277 阅读, 收藏, 编辑
摘要:使用 Expression 类创建 Expression Trees 的代码往往比较繁琐,可以借助扩展方法予以简化。 阅读全文

c# 扩展方法奇思妙用滥用篇一:改进 2011 年最佳代码

2011-08-08 18:39 by 鹤冲天, 9542 阅读, 收藏, 编辑
摘要:使用 OrNot 扩展方法性改进 2011 年最佳代码:if (whatEver(you.Believe)(it).OrNot()) I.Believe(it); 阅读全文

c# 扩展方法奇思妙用基础篇八:Distinct 扩展

2011-08-01 20:57 by 鹤冲天, 20054 阅读, 收藏, 编辑
摘要:刚看了篇文章 《Linq的Distinct太不给力了》,文中解决办法,略显复杂。使用本文的扩展方法可写成如下优雅的方式:var p1 = products.Distinct(p => p.ID) 阅读全文

c# 扩展方法奇思妙用基础篇七:IsBetween 通用扩展

2011-02-18 21:09 by 鹤冲天, 5889 阅读, 收藏, 编辑
摘要:写个扩展容易,但写一个通用的扩展可不简单,试看本文借如何优雅的完成通用的 IsBetween 扩展... 阅读全文

c# 扩展方法奇思妙用基础篇 六:WhereIf 扩展

2011-02-17 19:24 by 鹤冲天, 12980 阅读, 收藏, 编辑
摘要:创建并使用 WhereIf 扩展方法简化代码... 阅读全文

c# 扩展方法奇思妙用基础篇五:Dictionary<TKey, TValue> 扩展

2011-01-28 18:41 by 鹤冲天, 26177 阅读, 收藏, 编辑
摘要:为 Dictionary&lt;TKey, TValue&gt; 类创建几个扩展方法,让使用更加简洁高效... 阅读全文

c# 扩展方法奇思妙用基础篇四:Random 扩展

2011-01-27 20:45 by 鹤冲天, 9967 阅读, 收藏, 编辑
摘要:在 .Net 中,我们一般使用 Random 类来生成随机数,它仅提供了几个基本方法供我们使用。如果想生成一些特殊的随机数,如枚举、日期等,则要再进行几步处理。本文将会扩展 Random 类,让随机更方便... 阅读全文

c# 扩展方法奇思妙用 ASP.NET MVC 篇:巧用扩展方法优先级,美化所有页面 TextBoxFor 文本框

2010-04-17 21:12 by 鹤冲天, 12510 阅读, 收藏, 编辑
摘要:巧妙使用扩展方法的优先级,美化你网站(ASP.NET MVC)页面的TextBoxFor文本框;配合js脚本,还能限制用户录入。而且你甚至不需要修改任何一个前台页面... 阅读全文

c# 扩展方法奇思妙用高级篇八:Type类扩展

2009-12-11 19:43 by 鹤冲天, 6195 阅读, 收藏, 编辑
摘要:Type 类提供了大量的属性和方法,但在一些基础性开发工作中,Type类功能还有些欠缺,尤其上在处理泛型类型时,如可空类型和泛型集合类型。下面的类就针对这些地方进行扩展... 阅读全文

c#扩展方法奇思妙用高级篇七:“树”通用遍历器

2009-11-09 22:06 by 鹤冲天, 6635 阅读, 收藏, 编辑
摘要:“树”的遍历是一个通用算法,本文给出“树”遍历的通用扩展方法... 阅读全文

c# 扩展方法奇思妙用高级篇六:WinForm 控件选择器

2009-11-08 21:17 by 鹤冲天, 8796 阅读, 收藏, 编辑
摘要:在Web开发中,jQuery提供了功能异常强大的$选择器来帮助我们获取页面上的对象。但在WinForm中,.Net似乎没有这样一个使用起来比较方便的选择器。好在我们有扩展方法,可以很方便的打造一个。 阅读全文

c# 扩展方法奇思妙用高级篇五:ToString(string format) 扩展

2009-09-02 21:09 by 鹤冲天, 11465 阅读, 收藏, 编辑
摘要:本文给出了ToString(string format)的扩展实现,一劳永逸... 阅读全文

c# 扩展方法奇思妙用高级篇四:对扩展进行分组管理

2009-08-29 23:49 by 鹤冲天, 5768 阅读, 收藏, 编辑
摘要:从系列文章开篇到现在,已经实现的很多扩展了,但过多的扩展会给我们带来很多麻烦... 本文给出了三种解决方法... 阅读全文

c# 扩展方法奇思妙用变态篇四:string 的翻身革命

2009-08-26 20:27 by 鹤冲天, 8019 阅读, 收藏, 编辑
摘要:string是各种编程语言中最基础的数据类型,长期以来受尽其它类的压迫... 而现在string要“翻身闹革命”了,它几乎无所不能,可以为所欲为,令其它类心惊胆颤... 阅读全文

c# 扩展方法奇思妙用基础篇三:byte 常用扩展

2009-08-22 21:11 by 鹤冲天, 8460 阅读, 收藏, 编辑
摘要:byte 常用的八种扩展 阅读全文

c#扩展方法奇思妙用变态篇三:switch/case组扩展

2009-08-18 20:32 by 鹤冲天, 12321 阅读, 收藏, 编辑
摘要:变态篇二中给出了对if/else、swith/case及while 的扩展,其中举了一个Swith扩展的应用... 今天突然有了新想法,对Switch扩展进行了改进。所谓“语不惊人死不休”,且看这次的改进如何... 阅读全文

c# 扩展方法奇思妙用高级篇三:Enumerable.Cast<T> 应用

2009-08-17 21:10 by 鹤冲天, 16007 阅读, 收藏, 编辑
摘要:Enumerable.Cast用于将IEnumerable转换为泛型版本IEnumerable。转换后可尽情享用Enumerable的其它方法... 但MSDN中仅给出一个转换ArrayList的例子,很多人看了感觉用处不多,其实不然... 阅读全文

c# 扩展方法奇思妙用性能篇一:扩展方法性能初测

2009-08-15 20:15 by 鹤冲天, 9466 阅读, 收藏, 编辑
摘要:最近写了几篇《c#扩展方法奇思妙用》的文章,一直只是讨论如何扩展、如何使用的问题,几乎没有涉及效率方面。而大家的回复好多都在问效率如何、性能怎样,也引起了我对效率的关注,今天将初步测试的结果发出来,大家一起探讨一下。 这次测试的结果令我倍感意外,确实没想到扩展方法的效率如此之高... 阅读全文

c# 扩展方法奇思妙用基础篇二:string 常用扩展

2009-08-14 21:31 by 鹤冲天, 25720 阅读, 收藏, 编辑
摘要:string是c#里面最最常用的类,和它的使用频度比起来,它的操作确少的可怜,实例方法只有三十个左右,静态方法只有十多个,远远满足不了我们日常的需求。 本文使用扩展方法来增加string的功能,举出几个例子,也算是抛砖引玉吧! 阅读全文

c# 扩展方法奇思妙用变态篇二:封装 if/else、swith/case 及 while

2009-08-13 18:13 by 鹤冲天, 14962 阅读, 收藏, 编辑
摘要:本文探讨如何使用扩展方法封装 if/else、swith/case及while,通过使用这些扩展,写出的代码将使用很少的大括号{ }... 阅读全文

c# 扩展方法奇思妙用高级篇二:Aggregate 扩展及其改进

2009-08-12 20:07 by 鹤冲天, 18517 阅读, 收藏, 编辑
摘要:Enumerable.Aggregate 扩展方法在System.Linq命名空间中... 本文介绍使用Aggregate进行求和、byte数组异或、字符串拼装/逆序输出。并对Aggregate进行改进,实现间隔求和,进一步改进查重极限算法。 阅读全文

c# 扩展方法奇思妙用变态篇一:由 Fibonacci 数列引出 “委托扩展” 及 “递推递归委托”

2009-08-10 09:06 by 鹤冲天, 6289 阅读, 收藏, 编辑
摘要:public static IEnumerable GetSequence(this Func func, int count)... 相信大家见的扩展大多针对类(object, string)、接口(IEnumerable)进行扩展,针对Func(委托)估计对大多数人来说都是第一次。 public static Func Fibonacci = n => Fibonacci(n - 1) + Fibonacci(n - 2);... 与数学通项式对比一下,何其相似!这就是我们的“递推递归委托”! 阅读全文

c# 扩展方法奇思妙用高级篇一:改进 Scottgu 的 "In" 扩展

2009-08-08 10:49 by 鹤冲天, 4741 阅读, 收藏, 编辑
摘要:很多介绍扩展方法的也大都使用"In"作为例子,但很少有人再深入想一步。个人感觉这个In扩展的不够彻底... 使用 params 和 泛型改进了 ScottGu 的 In 扩展,使用调用代码更加简洁,同时也能减少编程中的误输入。 阅读全文

c# 扩展方法奇思妙用

2009-08-07 17:45 by 鹤冲天, 55768 阅读, 收藏, 编辑
摘要:<img src="http://www.cnblogs.com/images/cnblogs_com/ldp615/extensions.jpg" class="desc_img"/> c#扩展方法出来已久,介绍的文章也很多,但都是笼统的。 本人最近一直在思考扩展方法的应用,也悟出了一些。 将这最近一段时间对扩展的思考,写成一个系列文章。 每个文章只介绍一个应用方面,篇幅不会太长。 打算将文章写成三个部分:基础篇、高级篇、变态篇。 阅读全文

c# 扩展方法奇思妙用基础篇一:中文处理

2009-08-07 17:20 by 鹤冲天, 19271 阅读, 收藏, 编辑
摘要:我们在做程序的的时候经常要处理用户输入,作为我们的主要语言中文,经常会出现全角、半角的问题,这会在查询时给我们带来很多麻烦。 本文采用扩展方法解决全半角切换的问题... 阅读全文