2012-01-15 18:41 by 鹤冲天, 1810 visits, 网摘, 收藏, 编辑
摘要:如题,本文实现 OrderBy(string propertyName, bool desc) 扩展方法,以弥补 Linq 原生排序方法的不足
阅读全文
2011-12-11 20:51 by 鹤冲天, 3296 visits, 网摘, 收藏, 编辑
摘要:如题,使用 Linq 时切勿使用 Count() > 0 来判断集合非空,这样做可能会带来严重的性能问题
阅读全文
2011-12-10 22:45 by 鹤冲天, 808 visits, 网摘, 收藏, 编辑
摘要:IsEmpty、IsNotEmpty 扩展方法,用来确定序列是否包含元素。
阅读全文
2011-12-09 20:38 by 鹤冲天, 2987 visits, 网摘, 收藏, 编辑
摘要:最近两三天一直在做树方面的基础工作,碰巧今天在博客园看到一篇关于动态创建树文章,粗略浏览下,感觉有不够强大。相比而言,感觉自己的方式更好些,只需要四行代码就可以创建一颗复杂的无限级树
阅读全文
2011-10-07 16:06 by 鹤冲天, 2272 visits, 网摘, 收藏, 编辑
摘要:Linq 中没有原生的 ForEach 扩展方法,我们可以很轻松的扩展一个......但这个有返回值的实现中有错误的,你能指出吗?
阅读全文
2011-09-21 21:24 by 鹤冲天, 1755 visits, 网摘, 收藏, 编辑
摘要:数据库表名用复数、实体类名用单数,集合属性用单数…编程中经常会遇到英语单复变换的问题,你能准确处理吗?对我来说,十年前或许可以,but don't worry,我们有现成的类提供些类服务,来自 EntityFrameWork。
阅读全文
2011-09-18 17:25 by 鹤冲天, 1749 visits, 网摘, 收藏, 编辑
摘要:Expression Trees 可用作 Action 的参数来简化查询,前文中给出的 QueryConditionExpressionModelBinder 类,比较僵化,无法满足实际要求。本文将会从这个类为起点,基于 Convention 构建一个灵活的解决方案。
阅读全文
2011-09-16 23:09 by 鹤冲天, 2257 visits, 网摘, 收藏, 编辑
摘要:MVC 引入了 ModelBinder,让我们可以在 Action 中以强类型参数的形式接收 Request 中的数据。在查询 Action 中,我们可以将 Expression Trees 用作参数,通过自定义的 ModelBinder 动态自动构建查询表达式树,进一步发挥 MVC 的威力,简化编码工作。
阅读全文
2011-09-15 17:18 by 鹤冲天, 2683 visits, 网摘, 收藏, 编辑
摘要:使用 Expression 类创建 Expression Trees 的代码往往比较繁琐,可以借助扩展方法予以简化。
阅读全文
2011-08-08 18:39 by 鹤冲天, 4677 visits, 网摘, 收藏, 编辑
摘要:使用 OrNot 扩展方法性改进 2011 年最佳代码:if (whatEver(you.Believe)(it).OrNot()) I.Believe(it);
阅读全文
2011-08-04 22:05 by 鹤冲天, 4742 visits, 网摘, 收藏, 编辑
摘要:从事 IT 行业,免不了经常阅读 PDF 文档。
PDF 文档纯白色背景相当刺眼,长时间阅读会导致眼睛干涩疼痛。一些 PDF 阅读软件可以修改背景,但往往只能使用纯色(单一颜色)。
PDF 文档使用淡雅的图片作背景,可减缓视觉疲劳,保护我们的眼睛。
阅读全文
2011-08-03 18:46 by 鹤冲天, 3117 visits, 网摘, 收藏, 编辑
摘要:做 .net 开发也若干年了,如此写法确是我第一次见(更别提用了):string.Format("4G 内存便宜了{0,12:C2},我打算买{1,4}条", 145, 2);
阅读全文
2011-08-02 18:45 by 鹤冲天, 2872 visits, 网摘, 收藏, 编辑
摘要:昨日有文《Linq的Distinct太不给力了》,本文更深一步讨论。
.net 中经常把 IEqualityComparer
用作某些重载的参数。
虽然这些重载在日常使用中并不频繁, 不过一旦用到,大多要创建新类实现 IEqualityComparer,繁琐不给力。
本文创建 Equality 泛型类,配合一个 lambda 表达式可快速创建 IEqualityComparer 的实例。 阅读全文
2011-08-01 20:57 by 鹤冲天, 3888 visits, 网摘, 收藏, 编辑
摘要:刚看了篇文章 《Linq的Distinct太不给力了》,文中解决办法,略显复杂。使用本文的扩展方法可写成如下优雅的方式:var p1 = products.Distinct(p => p.ID)
阅读全文
2011-07-20 22:06 by 鹤冲天, 2005 visits, 网摘, 收藏, 编辑
摘要:开发数据库无关的应用程序有很多种方式,本文介绍最基础的一种...
阅读全文
2011-07-14 13:32 by 鹤冲天, 2569 visits, 网摘, 收藏, 编辑
摘要:对 .NET 中各种求和的方式进行效率比较...
对一般开发影响不太,对效率要求不高的朋友可无视本文...
阅读全文
2011-07-13 20:02 by 鹤冲天, 2900 visits, 网摘, 收藏, 编辑
摘要:如题,使用 .NET 4 中的并行求和,效率不理想。文中给出一简单的并行求和方法...
阅读全文
2011-06-29 07:53 by 鹤冲天, 2183 visits, 网摘, 收藏, 编辑
摘要:dynamic 免去了反射调用的繁琐和不雅,带来了极大便利。但面对其他程序集中的 internal 类型时 dynamic 表现又如何呢...
阅读全文
2011-06-23 20:47 by 鹤冲天, 4619 visits, 网摘, 收藏, 编辑
摘要:相信大多朋友和我一样,每天写代码就会用到 String.Format 这个方法。太经常用,感觉敲起键盘了不是太利索,于是把它精简成一个字母 F,以后代码可以这样写了:var s = F("今天是 {0}", DateTime.Now)。
阅读全文
2011-02-22 21:42 by 鹤冲天, 6924 visits, 网摘, 收藏, 编辑
摘要:如题,借助于 Clay 项目,我们可以编写出不可思议的 c# 代码,各种方式的对象初始化和属性赋值,简单动态创建集合,动态接口实现...本文将会令你大为惊叹:原来c#也可以这样写!!
阅读全文
2011-02-18 21:09 by 鹤冲天, 3009 visits, 网摘, 收藏, 编辑
摘要:写个扩展容易,但写一个通用的扩展可不简单,试看本文借如何优雅的完成通用的 IsBetween 扩展...
阅读全文
2011-02-17 19:24 by 鹤冲天, 4653 visits, 网摘, 收藏, 编辑
摘要:创建并使用 WhereIf 扩展方法简化代码...
阅读全文
2010-04-17 21:12 by 鹤冲天, 5745 visits, 网摘, 收藏, 编辑
摘要:巧妙使用扩展方法的优先级,美化你网站(ASP.NET MVC)页面的TextBoxFor文本框;配合js脚本,还能限制用户录入。而且你甚至不需要修改任何一个前台页面...
阅读全文
2010-02-02 22:08 by 鹤冲天, 2416 visits, 网摘, 收藏, 编辑
摘要:使用 NHibernate 进行 Web 开发的朋友大多都知道 Session-Per-Request 模式,但网上真正能够正确使用的例子不多,网上包括园子里好多文章犯了同一个错误,而这个错误确一直在散播...
阅读全文
2009-11-29 22:48 by 鹤冲天, 3774 visits, 网摘, 收藏, 编辑
摘要:用户界面中,需要用户进行多项选择时,我们通常会提供一组快速选择按钮:全选、反选、清空,以方便用户操作。本文章将会构建一个通用速选组件来简化操作,使用之后,您不需要编写任何代码,只需设置两个属性便可让一个控件拥有速选的功能...
阅读全文
2009-11-13 22:17 by 鹤冲天, 1776 visits, 网摘, 收藏, 编辑
摘要:最近做Office方面的开发工作,操作Word时发出一处二义性的警告...
阅读全文
2009-11-11 21:22 by 鹤冲天, 2073 visits, 网摘, 收藏, 编辑
摘要:今天发现了一句有歧义的labmbda表达式,发出来供大家“把玩”...
阅读全文
2009-11-09 22:06 by 鹤冲天, 3577 visits, 网摘, 收藏, 编辑
摘要:“树”的遍历是一个通用算法,本文给出“树”遍历的通用扩展方法...
阅读全文
2009-11-08 21:17 by 鹤冲天, 4077 visits, 网摘, 收藏, 编辑
摘要:在Web开发中,jQuery提供了功能异常强大的$选择器来帮助我们获取页面上的对象。但在WinForm中,.Net似乎没有这样一个使用起来比较方便的选择器。好在我们有扩展方法,可以很方便的打造一个。
阅读全文
2009-09-05 17:39 by 鹤冲天, 3226 visits, 网摘, 收藏, 编辑
摘要:.Net中表式相等的方法很多,和相等的接口也很多...
而.Net中的集合类普遍都有Contains方法,Contains与这些相等方法、相等接口之间关系如何呢?本文将.Net掘地三尺,一步步分析,篇幅较长,请耐心品味...
阅读全文
2009-09-04 20:01 by 鹤冲天, 3032 visits, 网摘, 收藏, 编辑
摘要:非常基础的.Net试题,确很难回答。高手也未必能回答正确...
阅读全文
2009-08-31 21:34 by 鹤冲天, 3427 visits, 网摘, 收藏, 编辑
摘要:今天看了老赵的随笔《使用Lambda表达式编写递归函数》,老赵给其中两行代码下了“伪递归”的定论,我非常不满,今写文反驳之...
阅读全文
2009-08-29 23:49 by 鹤冲天, 3317 visits, 网摘, 收藏, 编辑
摘要:从系列文章开篇到现在,已经实现的很多扩展了,但过多的扩展会给我们带来很多麻烦...
本文给出了三种解决方法...
阅读全文
2009-08-28 19:07 by 鹤冲天, 2622 visits, 网摘, 收藏, 编辑
摘要:“单一职责原则”是面向对象软件开发的基本原则之一,面向对象的思想又是从现实世界中总结出来。可最近发现面向对象的单一职责原则与现实好似有些冲突...
阅读全文
2009-08-26 20:27 by 鹤冲天, 4649 visits, 网摘, 收藏, 编辑
摘要:string是各种编程语言中最基础的数据类型,长期以来受尽其它类的压迫...
而现在string要“翻身闹革命”了,它几乎无所不能,可以为所欲为,令其它类心惊胆颤...
阅读全文
2009-08-18 20:32 by 鹤冲天, 6452 visits, 网摘, 收藏, 编辑
摘要:变态篇二中给出了对if/else、swith/case及while 的扩展,其中举了一个Swith扩展的应用...
今天突然有了新想法,对Switch扩展进行了改进。所谓“语不惊人死不休”,且看这次的改进如何...
阅读全文
2009-08-15 20:15 by 鹤冲天, 3944 visits, 网摘, 收藏, 编辑
摘要:最近写了几篇《c#扩展方法奇思妙用》的文章,一直只是讨论如何扩展、如何使用的问题,几乎没有涉及效率方面。而大家的回复好多都在问效率如何、性能怎样,也引起了我对效率的关注,今天将初步测试的结果发出来,大家一起探讨一下。
这次测试的结果令我倍感意外,确实没想到扩展方法的效率如此之高...
阅读全文
2009-08-13 18:13 by 鹤冲天, 6441 visits, 网摘, 收藏, 编辑
摘要:本文探讨如何使用扩展方法封装 if/else、swith/case及while,通过使用这些扩展,写出的代码将使用很少的大括号{ }...
阅读全文
2009-08-12 20:07 by 鹤冲天, 3807 visits, 网摘, 收藏, 编辑
摘要:Enumerable.Aggregate 扩展方法在System.Linq命名空间中...
本文介绍使用Aggregate进行求和、byte数组异或、字符串拼装/逆序输出。并对Aggregate进行改进,实现间隔求和,进一步改进查重极限算法。
阅读全文
2009-08-10 09:06 by 鹤冲天, 3617 visits, 网摘, 收藏, 编辑
摘要:public static IEnumerable
GetSequence(this Func func, int count)...
相信大家见的扩展大多针对类(object, string)、接口(IEnumerable)进行扩展,针对Func(委托)估计对大多数人来说都是第一次。
public static Func Fibonacci = n => Fibonacci(n - 1) + Fibonacci(n - 2);...
与数学通项式对比一下,何其相似!这就是我们的“递推递归委托”! 阅读全文
2009-08-08 16:39 by 鹤冲天, 877 visits, 网摘, 收藏, 编辑
摘要:初中知识解决以下问题:
1-n放在含有n+1个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次。每个数组元素只能访问一次,设计一个算法,将它找出来;不用辅助存储空间,能否设计一个算法实现?(n可能为奇数)
文章最后还给出了一个极限算法!
阅读全文
2009-08-08 10:49 by 鹤冲天, 2271 visits, 网摘, 收藏, 编辑
摘要:很多介绍扩展方法的也大都使用"In"作为例子,但很少有人再深入想一步。个人感觉这个In扩展的不够彻底...
使用 params 和 泛型改进了 ScottGu 的 In 扩展,使用调用代码更加简洁,同时也能减少编程中的误输入。
阅读全文
2009-08-07 17:45 by 鹤冲天, 18657 visits, 网摘, 收藏, 编辑
摘要:
c#扩展方法出来已久,介绍的文章也很多,但都是笼统的。
本人最近一直在思考扩展方法的应用,也悟出了一些。
将这最近一段时间对扩展的思考,写成一个系列文章。
每个文章只介绍一个应用方面,篇幅不会太长。
打算将文章写成三个部分:基础篇、高级篇、变态篇。
阅读全文
2009-08-07 17:20 by 鹤冲天, 6874 visits, 网摘, 收藏, 编辑
摘要:我们在做程序的的时候经常要处理用户输入,作为我们的主要语言中文,经常会出现全角、半角的问题,这会在查询时给我们带来很多麻烦。
本文采用扩展方法解决全半角切换的问题...
阅读全文
2009-08-07 14:49 by 鹤冲天, 1660 visits, 网摘, 收藏, 编辑
摘要:c#链式编程,使用链式编程精炼代码。采用泛型扩展方法来对已由代码链式编程。
阅读全文
2009-08-06 22:17 by 鹤冲天, 1255 visits, 网摘, 收藏, 编辑
摘要:今天在园子里面发现一篇文章超精简C#程序代码,看了之后很是震撼,花了好长时间基本看明白了。随后又有了一些新的想法。
最近一直在思考扩展方法的应用,与这篇文章中的想法一接合,可将代码进一步精简,并可增强可读性。
代码仅用了三个分号...
阅读全文