這篇文章主要介紹“LINQ語法怎么理解”,在日常操作中,相信很多人在LINQ語法怎么理解問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”LINQ語法怎么理解”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、微信平臺小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了長汀免費建站歡迎大家使用!
程序語言隨著時間演進,一再沉淀經(jīng)驗與抽象后,以簡練直觀的語法解決具有共通特征的各式問題。Visual Studio 2008(程序代碼名稱為 Orcas)、C# 3.0 與 VB.NET 9.0 后將支持新的語法 Language Integrated Query(LINQ),想一體解決多樣的資料存取。它是由 Anders Hejlsberg 所主導。Anders 曾打造了 Turbo Pascal、Delphi、Visual J++、C# 等叫好叫座的產(chǎn)品,單憑這位殺手應用創(chuàng)造者的眼光,LINQ 就不可小覷。
LINQ 是一系列語言延伸模塊,以型別安全的方式支持數(shù)據(jù)查詢。期待隔絕各種數(shù)據(jù)的特性,不管是各廠家數(shù)據(jù)庫的 SQL 方言,或是 XML 的 DOM、XQuery 或 XPath,抑或是對象集合的屬性存取。以共通的方式完成數(shù)據(jù)操作,如:挑選、比對、排序、匯總…等等。期待減輕程序開發(fā)人員學習操作各種數(shù)據(jù)的負荷。
LINQ 藉由各語言編譯程序將內(nèi)嵌的 LINQ語法轉譯成原本的 C# 或 VB.NET 程序代碼,并呼叫相關的底層模塊以實體維護數(shù)據(jù)。***編譯成與 .NET Framework 2.0 CLR 兼容的 IL,所以 CLR 本身并未增加與 LINQ 相關的模塊,但 .NET Framework、Visual Studio 整合開發(fā)環(huán)境和程序語言需要增加相關功能和語法。
就筆者自己的感覺,LINQ 有以下的好處:
◆簡化大量的細節(jié)運作,將如何(how)取得數(shù)據(jù)換成要操作什么(what)數(shù)據(jù):這隱含存取優(yōu)化交由專家來做,如 DB 引擎優(yōu)化存取數(shù)據(jù)。
◆透過IEnumerable
◆平行運算:若要處理大量數(shù)據(jù),程序設計師不容易撰寫 for 循環(huán)還包含平行運算。但 LINQ 轉譯成 C# 或 VB.NET 的程序代碼時,可以平行運算的方式處理大量數(shù)據(jù)。
◆撰寫數(shù)據(jù)對象存取的過程中,可以 IntelliSense 和強型別檢查:相較于以往 ADO.NET 加上 SQL 語法,LINQ 比 typed dataset 直觀易懂,且應用更為廣泛。
就筆者與許多朋友聊到 LINQ 時,最多的詢問便是「未來是否不需要學 SQL 了?」個人認為,短時間不可能,LINQ 或許會減輕程序設計師對 SQL 的倚賴,但 LINQ 不會取代 SQL。它們各有一片天,LINQ 是程序設計師講的數(shù)據(jù)對象語言,SQL 是數(shù)據(jù)庫管理師對數(shù)據(jù)庫引擎講的語言,LINQ 是從應用程序處理數(shù)據(jù)的角度出發(fā),但 SQL 關乎著整體數(shù)據(jù)庫服務器有效且安全地活著的每一個細節(jié)。
而緊接的問題通常是:「將數(shù)據(jù)以對象來包裝,透過 entity 類別間接存取數(shù)據(jù),那是否會有效率問題?」這筆者無法回答,尚待真實世界來證明。
LINQ 范例
你可以在 C# 中直接內(nèi)嵌如下的語法:取得在 Customer 對象集合中,每個 Customer 的屬性 Country 值為 USA,按照 City 屬性由大到小排序,傳回以 CompanyName 和 City 兩個屬性的字符串值所建立的新對象之集合:
var matchCustomers = from c in db.Customers where c.Country == "USA" orderby c.City descending select new { c.CompanyName, c.City };
這句 LINQ語法經(jīng)由 C# 編譯程序解析,傳回實做 IEnumerable
若不采用 LINQ 寫法,上述語法也可以寫成如下的方式:
var matchCustomers = db.Customers.Where(c => c.Country == "USA").
OrderByDescending(c => c.City).Select(c => new { c.CompanyName, c.City });
到此,關于“LINQ語法怎么理解”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
新聞標題:LINQ語法怎么理解
轉載來于:http://weahome.cn/article/poceho.html