Linq入門——什麼是linq & 擴充套件方法
一,什麼是Linq
linq(language integrated Query):語言整合查詢;
linq包含如下:
對物件的查詢,對資料庫的查詢,對XML的查詢。
那麼,沒有linq前我們是怎樣查詢的?
先看一個例子:
現在我們要查詢大於50的數,:
在沒有linq之前,我們的程式碼時這樣的:
使用了linq查詢:
首先,從直觀上看,程式碼更加簡潔,其次,對於查詢部分,接近SQL語句,層次清晰,容易理解;
除了簡單高效以為,LINQ的出現解決了很多問題:
1,面向物件與資料訪問兩個領域長期分裂,各自為政的問題:比如,在面向物件中,對於物件中資料的訪問,我們用“物件名稱.屬性名”就可以,但是在資料訪問領域,我們要從資料庫中查詢資料的時候,用的確實SQL語句,比如select * from table.
2,程式語言中的資料型別與資料庫中的資料型別形成兩套體系;
例如,程式語言中字串string, 但是資料庫中可以用很多型別代表字元,如:char,nvchar,vchar
3,SQL編碼體驗落後
SQL語句只有執行時才會發現錯誤,不能在寫程式碼的時候發現語法錯誤,我們要除錯SQL語句,只能放到查詢分析器裡面進行單獨除錯;
4,SQL和XML都有各自的查詢語言,而物件沒有自己的查詢語言
對於陣列和結合的查詢只能遍歷進行,不像SQL和XML那麼簡單;
二,擴充套件方法
首先,擴充套件方法是對現有的類提供額外的方法,來擴充套件類的功能;
其次,Linq基於擴充套件方法;
示例:
需要注意的是,擴充套件方法中this後面指定了此方法針對的型別。
後續將涉及到linq深入探索,本人初學者,請多多關照。