这篇文章主要讲解了“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扩展方法,我们可以如下这样做:
public static class MyExtensions { publicstatic bool IsValidEmailAddress(this strings) { Regex regex = new Regex( @"^[w-.]+@([w-]+.)+[w-]{2,4}$"); return regex.IsMatch(s); } }
我们定义了一个带有静态方法的静态类。注意,那个静态方法在参数类型string 前面有一个this 关键词,这会告诉编译器这个特殊的Linq扩展方法会增加给string 类型的对象。于是我们就可以在string 中调用这个成员方法:
using MyExtensions; string email = Request.QueryString["email"]; if( email.IsValidEmailAddress() ) { // ... }
值得提出的是,LINQ就是使用了System.Linq 命名空间中的Linq扩展方法(比如where()、orderby()、select()、sum()、average()等等),而且它定义了标准查询操作符,可以用来查询关系数据库、XML和任何实现了IEnumerable<T> 接口的.NET对象。
感谢各位的阅读,以上就是“Linq扩展方法是什么”的内容了,经过本文的学习后,相信大家对Linq扩展方法是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!