Linq扩展方法简单分析

开发 后端
这里介绍Linq扩展方法可以使你来扩展一个已存在的类型,增加它的方法,而无需继承它或者重新编译。所以不像为对象写助手方法,Linq扩展方法可以直接是对象自己的一部分。

在向大家详细介绍LINQ之前,首先让大家了解下LINQ是什么,然后全面介绍Linq扩展方法。

LINQ使查询成为了.NET中头等的编程概念,被查询的数据可以是XML(LINQ to XML)、Databases(LINQ to SQL、LINQ to Dataset、LINQ to Entities)和对象(LINQ to Objects)。LINQ也是可扩展的,允许你建立自定义的LINQ数据提供者(比如:LINQ to Amazon、LINQ to NHibernate、LINQ to LDAP)。在这里我会讨论C#3.0中的一些新的语言特性和改进,正是它们使得LINQ变得如此强大~~

Linq扩展方法

Linq扩展方法可以使你来扩展一个已存在的类型,增加它的方法,而无需继承它或者重新编译。所以不像为对象写助手方法,Linq扩展方法可以直接是对象自己的一部分。

一个示例,假设我们想要验证一个string 是不是合法的Email地址,我们可以编写一个方法,输入为一个string 并且返回true 或者false 。现在,使用Linq扩展方法,我们可以如下这样做:

  1. public static class MyExtensions {  
  2.  
  3. publicstatic bool IsValidEmailAddress(this strings) {  
  4.  
  5. Regex regex = new 
  6. Regex( @"^[w-.]+@([w-]+.)+[w-]{2,4}$");  
  7.  
  8. return  
  9. regex.IsMatch(s);  
  10.  
  11. }  
  12.  

我们定义了一个带有静态方法的静态类。注意,那个静态方法在参数类型string 前面有一个this 关键词,这会告诉编译器这个特殊的Linq扩展方法会增加给string 类型的对象。于是我们就可以在string 中调用这个成员方法:

  1. using MyExtensions;  
  2. string email = Request.QueryString["email"];  
  3. if( email.IsValidEmailAddress() ) {  
  4. // ...  

值得提出的是,LINQ就是使用了System.Linq 命名空间中的Linq扩展方法(比如where()、orderby()、select()、sum()、average()等等),而且它定义了标准查询操作符,可以用来查询关系数据库、XML和任何实现了IEnumerable<T> 接口的.NET对象。

【编辑推荐】

  1. Linq查询二维数组浅析
  2. 学习Linq经验总结
  3. Linq修改XML文档描述
  4. Linq延时执行全面分析
  5. Linq实现Left join
责任编辑:佚名 来源: IT168
相关推荐

2009-09-11 10:20:36

Linq扩展方法

2009-09-15 15:09:50

Linq本质

2009-09-10 16:32:19

LINQ Where

2009-09-08 13:16:01

Linq to SQL

2009-09-15 14:58:26

Linq查询本质

2009-09-08 17:01:54

Linq源元素

2009-09-10 17:53:50

LINQ是什么

2009-09-14 09:49:08

Linq扩展函数

2009-09-17 08:47:00

Linq查询

2011-05-18 13:37:26

LINQ

2009-09-11 09:41:19

LINQ to SQL

2009-09-08 10:50:20

2009-09-09 15:28:43

Linq to obj

2009-09-18 16:00:07

LINQ架构

2009-09-14 10:57:46

LINQ入门

2009-09-15 16:26:36

Linq orderb

2009-09-09 14:20:49

LINQ To Luc

2009-09-10 16:28:17

LINQ查询

2009-09-07 17:05:10

LINQ进行查询

2009-09-09 15:10:35

LINQ查询句法
点赞
收藏

51CTO技术栈公众号