Spiga

[置顶]c# 扩展方法奇思妙用

2009-08-07 17:45 by 鹤冲天, 15754 visits, 网摘, 收藏, 编辑
摘要: c#扩展方法出来已久,介绍的文章也很多,但都是笼统的。
本人最近一直在思考扩展方法的应用,也悟出了一些。
将这最近一段时间对扩展的思考,写成一个系列文章。
每个文章只介绍一个应用方面,篇幅不会太长。
打算将文章写成三个部分:基础篇、高级篇、变态篇。 阅读全文

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

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

Linq:切勿使用 Count() > 0 来判断集合非空

2011-12-11 20:51 by 鹤冲天, 2561 visits, 网摘, 收藏, 编辑
摘要:如题,使用 Linq 时切勿使用 Count() > 0 来判断集合非空,这样做可能会带来严重的性能问题 阅读全文

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

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

四行代码创建复杂(无限级)树

2011-12-09 20:38 by 鹤冲天, 2604 visits, 网摘, 收藏, 编辑
摘要:最近两三天一直在做树方面的基础工作,碰巧今天在博客园看到一篇关于动态创建树文章,粗略浏览下,感觉有不够强大。相比而言,感觉自己的方式更好些,只需要四行代码就可以创建一颗复杂的无限级树 阅读全文

ASP.NET MVC:自定义 Route 让你的 Url 更优雅

2011-12-05 20:11 by 鹤冲天, 2083 visits, 网摘, 收藏, 编辑
摘要:如今,互联网越来越注重简单优雅的 Url, 相信大多朋友都喜欢小写、使用负号作为连字符的 url。本文使用自定义 Route 来实现,只需增加几个类和简单修改下 global.asax 文件。 阅读全文

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

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

复用 Entity Framework 中英语单复数形式变换的类

2011-09-21 21:24 by 鹤冲天, 1551 visits, 网摘, 收藏, 编辑
摘要:数据库表名用复数、实体类名用单数,集合属性用单数…编程中经常会遇到英语单复变换的问题,你能准确处理吗?对我来说,十年前或许可以,but don't worry,我们有现成的类提供些类服务,来自 EntityFrameWork。 阅读全文

ASP.NET MVC:Expression Trees 作为参数简化查询 二

2011-09-18 17:25 by 鹤冲天, 1540 visits, 网摘, 收藏, 编辑
摘要:Expression Trees 可用作 Action 的参数来简化查询,前文中给出的 QueryConditionExpressionModelBinder 类,比较僵化,无法满足实际要求。本文将会从这个类为起点,基于 Convention 构建一个灵活的解决方案。 阅读全文

ASP.NET MVC:Expression Trees 作为参数简化查询

2011-09-16 23:09 by 鹤冲天, 1885 visits, 网摘, 收藏, 编辑
摘要:MVC 引入了 ModelBinder,让我们可以在 Action 中以强类型参数的形式接收 Request 中的数据。在查询 Action 中,我们可以将 Expression Trees 用作参数,通过自定义的 ModelBinder 动态自动构建查询表达式树,进一步发挥 MVC 的威力,简化编码工作。 阅读全文

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

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

ASP.NET MVC 3:放弃 Unity

2011-08-16 17:34 by 鹤冲天, 4463 visits, 网摘, 收藏, 编辑
摘要:Unity 很多时候也不尽人意...Unity 形为诡异,不按常理出牌,终于逼我产生了放弃的念头... 阅读全文

ASP.NET MVC 3:正确实现 UnityDependencyResolver

2011-08-16 00:24 by 鹤冲天, 3214 visits, 网摘, 收藏, 编辑
摘要:前日,dudu 写了篇文章 《想爱容易,相处难:当ASP.NET MVC 爱上 IoC》, dudu 在文中错误地使用了 Unity... 阅读全文

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

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

保护眼睛:给 PDF 设置图片背景

2011-08-04 22:05 by 鹤冲天, 3699 visits, 网摘, 收藏, 编辑
摘要:从事 IT 行业,免不了经常阅读 PDF 文档。 PDF 文档纯白色背景相当刺眼,长时间阅读会导致眼睛干涩疼痛。一些 PDF 阅读软件可以修改背景,但往往只能使用纯色(单一颜色)。 PDF 文档使用淡雅的图片作背景,可减缓视觉疲劳,保护我们的眼睛。 阅读全文

这种写法用过没:string.Format("{0,-10}", 8)

2011-08-03 18:46 by 鹤冲天, 2960 visits, 网摘, 收藏, 编辑
摘要:做 .net 开发也若干年了,如此写法确是我第一次见(更别提用了):string.Format("4G 内存便宜了{0,12:C2},我打算买{1,4}条", 145, 2); 阅读全文

快速创建 IEqualityComparer<T> 和 IComparer<T> 的实例

2011-08-02 21:14 by 鹤冲天, 1863 visits, 网摘, 收藏, 编辑
摘要:.net 中 IEqualityComparer 和 IComparer 经常在 Linq 和 一些泛型集合、泛型字典类中用作参数。不过因其复杂性,包含 IEqualityComparer 或 IComparer 类型参数的函数一般使用频度不高。 尽管如此,有些情况下确非用不可,不得不创建一些新的类来实现 IEqualityComparer 或 IComparer 接口。不但增加了代码量,还对程序结构产生影响,新加入的类命名、放置、共用都是问题。 因此,我们期望能简单快速直接的创建 IEqualityComparer 和 IComparer 的实例。 阅读全文

何止 Linq 的 Distinct 不给力

2011-08-02 18:45 by 鹤冲天, 2633 visits, 网摘, 收藏, 编辑
摘要:昨日有文《Linq的Distinct太不给力了》,本文更深一步讨论。 .net 中经常把 IEqualityComparer 用作某些重载的参数。 虽然这些重载在日常使用中并不频繁, 不过一旦用到,大多要创建新类实现 IEqualityComparer,繁琐不给力。 本文创建 Equality 泛型类,配合一个 lambda 表达式可快速创建 IEqualityComparer 的实例。 阅读全文

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

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

使用 ADO.NET 开发 数据库无关 的 应用程序

2011-07-20 22:06 by 鹤冲天, 1868 visits, 网摘, 收藏, 编辑
摘要:开发数据库无关的应用程序有很多种方式,本文介绍最基础的一种... 阅读全文

.NET 求和的效率

2011-07-14 13:32 by 鹤冲天, 2449 visits, 网摘, 收藏, 编辑
摘要:对 .NET 中各种求和的方式进行效率比较... 对一般开发影响不太,对效率要求不高的朋友可无视本文... 阅读全文