程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Linq擴展方法簡單分析

Linq擴展方法簡單分析

編輯:關於.NET

在向大家詳細介紹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擴展方法,我們可以如下這樣做:

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對象。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved