LINQ編程技術內幕

LINQ編程技術內幕
定價:354
NT $ 308
 

內容簡介

本書結合C# 3.0和Visual Studio 2008對LINQ進行了實操型講解。本書介紹了LINQ編程的各個方面,展示了LINQ是如何幫你顯著提高生產效率的,還告訴了你應當如何用LINQ創建具有更高可靠性和可維護性的應用程序。

本書首先介紹了LINQ所用到的最新的C#編程技術,比如匿名類型、分部方法以及Lambda表達式等。接著,通過具體的示例和易於改寫的范例代碼,分別針對對象、數據庫和XML詳細介紹了LINQ這個強大的新技術。你將會對LINQ的工作方式有一個深入而實用的理解,還會學到如何通過XML與其它數據模型的結合來實現各種各樣的數據處理功能。

本書不僅適合LINQ的初學者,而且對.NET數據處理人員、ASP.NET開發人員和Windows Form開發人員都有非常大的幫助,同時也可以作為高等學校計算機或相關專業的教材使用。

Microsoft積極參與的LINQ查詢技術使得程序員可以輕松地從任何數據源獲取任何數據,而且不用關心這些數據是從哪來的,也不用關心這些數據是如何存儲的。

本書是一本優秀的教學指南,它結合C# 3.0和Visual Studio 2008對LINQ進行了講解。本書介紹了LINQ編程的各個方面,展示了LINQ是如何幫你顯著提高生產效率的,還告訴了你應當如何用LINQ創建具有更高可靠性和可維護性的應用程序。

本書首先介紹了LINQ所用到的最新的C#編程技術,比如匿名類型、分部方法以及Lambda表達式等。接著,通過具體的示例和易於改寫的范例代碼,分別針對對象、數據庫和XML詳細介紹了LINQ這個強大的新技術。你將會對LINQ的工作方式有一個深入而實用的理解,還會學到如何通過XML與其他數據模型的結合來實現各種各樣的數據處理功能。

本書包括以下內容:

編寫高效的LINQ查詢以處理.NET對象、SQL數據庫以及XML數據。

利用匿名類型以降低編程難度,減少設計時間和調試時間。

利用yield return這個新概念自動生成.NET狀態機。

掌握LINQ查詢語法、運算符、擴展方法、排序、分組、聚合和集合操作等。

充分利用select以及在N層應用程序的業務層中使用它。

查詢存儲在Microsoft SQL Server中的關系型數據。

利用可空類型消除不必要的數據庫訪問代碼。

結合ADO.NET 3.0以及Microsoft新推出的功能強大的Entity Framework使用LINQ。

提取XML數據(無需麻煩而復雜的XPath)。

從CSV文件和其他非XML數據中自動構造出XML。

通過對LINQ進行擴展的方式來查詢活動目錄。
 

目錄

譯者序

前言
致謝
第一部分 為LINQ作准備
第1章 使用匿名類型
1.1 理解匿名類型
1.2 使用匿名類型
1.2.1 定義簡單匿名類型
1.2.2 使用數組寢化器語法
1.2.3 創建復合匿名類型
1.2.4 在for語句中使用匿名類型索引
1.2.5 匿名類型和using語句
1.2.6 從函數返回匿名類型
1.3 匿名類型的數據綁定
1.4 測試匿名類型的相等性
1.5 通過LINQ查詢使用匿名類型
1.6 泛型匿名方法簡介
1.6.1 使用匿名泛型方法
1.6.2 實現內嵌的遞歸
1.7 小結
第2章 使用復合類型初始化
2.1 通過命名類型初始化對象
2.1.1 實現能夠通過命名類型進行復合類型初始化的類
2.1.2 理解自動實現屬性
2.2 初始化匿名類型
2.3 初始化集合
2.3.1 完成Hypergraph
2.3.2 使用觀察者模式實現Hypergraph控制器
2.4 使用轉換運算符
2.4.1 ToArray
2.4.2 OfType
2.4.3 Cast
2.4.4 AsEnumerable
2.4.5 ToList
2.4.6 ToDictionary
2.4.7 ToLookup
2.5 小結
第3章 定義擴展方法和分部方法
3.1 擴展方法及其使用規則
3.2 定義擴展方法
3.2.1 實現擴展方法
3.2.2 重載擴展方法
3.2.3 定義泛型擴展方法
3.3 擴展方法是如何支持LINQ的
3.4 實現一個「會說話的」字符串擴展方法
3.5 定義分部方法
3.6 小結
第4章 yield return:使用.NET的狀態機生成器
4.1 理解 yield return 的工作方式
4.2 使用 yield return 和 yield break
4.2.1 測試代碼性能
4.2.2 使用 yield break
4.3 小結
第5章 理解Lambda表達式和閉包
5.1 了解由函數指針到 Lambda 表達式的演化過程
5.2 編寫基本的 Lambda 表達式
5.2.1 自動屬性
5.2.2 閱讀 Lambda 表達式
5.2.3 Lambda 表達式用作泛型活動
5.2.4 搜索字符串
5.2.5 Lambda 表達式用作泛型謂詞
5.2.6 將 Lambda 表達式綁定到控件事件
5.3 利用 Lambda 表達式進行動態編程
5.3.1 使用 Select和Lambda表達式
5.3.2 使用 Where和Lambda表達式
5.3.3 使用 OrderBy和Lambda表達式
5.3.4 將Lambda表達式編譯為代碼或數據
5.4 Lambda表達式和閉包
5.5 柯里化
5.6 小結
第6章 使用標准查詢運算符
6.1 了解LINQ是如何實現的
6.2 構造一個LINQ查詢
6.3 篩選信息
6.4 使用限定符
6.5 利用Skip和Take實現分區操作
6.6 使用生成運算
6.6.1 DefaultIfEmpty
6.6.2 Empty
6.6.3 Range
6.6.4 Repeat
6.7 相等性測試
6.8 從序列中獲取特定元素
6.9 通過Concat串聯序列
6.10 小結
第二部分 針對對象的LINQ
第7章 對查詢進行排序和分組
7.1 對信息進行排序
7.1.1 按升序和降序排序
7.1.2 直接使用擴展方法執行降序排列
7.1.3 執行次要排序
7.1.4 翻轉元素順序
7.2 對信息進行分組
7.3 小結
第8章 執行聚合運算
8.1 聚合
8.2 求集合平均值
8.3 元素計數
8.4 找出最小和最大的元素
8.5 計算查詢結果的總計
8.6 中位數:實現一個自定義聚合運算
8.7 小結
第9章 執行集合運算
9.1 找出非重復元素
9.2 通過Intersect和Except定義集合
9.3 使用Union創建復合結果集
9.4 小結
第10章 掌握Select和Select Many
10.1 探究Select
10.1.1 帶有函數調用功能的選擇
10.1.2 使用Select謂詞
10.1.3 從數據訪問層返回自定義業務對象
10.1.4 使用Select的索引打亂數組
10.1.5 構造21點撲克牌游戲的基礎功能
10.1.6 從計算所得的值上投影出新類型
10.1.7 引入DLL
10.1.8 同時使用GDI+和Windows API(或外部DLL)方法
10.1.9 使用Select將單詞的首字母改為大寫
10.2 從多個源中投影出新類型
10.3 使用SelectMany從多個序列中創建出一個新序列
10.4 在SelectMany中使用索引
10.5 小結
第11章 聯接查詢結果
第12章 查詢Outlook和活動
第三部分 針對數據的LINQ
第13章 使用LINQ查詢關系型數據
第14章 創建更好的實體以及映射繼承和聚合
第15章 通過LINQ查詢關聯數據庫表
第16章 更新匿名關系型數據
第17章 ADO.113NET 3.1130與Entity Framework簡介
第四部分 針對XML的LINQ
第18章 從XML中提取數據
第19章 比較LINQ to XML與其他XML技術
第20章 從非XML數據構造XML
第21章 使用Xml Writer生成XM
第22章 將XML與其他數據模型相結合
第23章 LINQ to XSD支持類型化XML編程
 

數據幾乎影響着我們生活中的方方面面。我們所做的每件事情其實就是分析查閱數據,然后再以優惠券或其他市場營銷手段對分析結果做出反應。在編寫一個應用程序的時候,你可以清楚地知道這種或那種數據將會成為該解決方案的一部分。對於軟件開發人員來說,在開發大型應用程序的時候,降低存取數據以及分析數據時的難度是很有必要的。事實上,數據會以各種各樣的形式出現,人們很快便找到了一個具有很高價值的辦法,即使用一個統一的框架來訪問各種類型的數據。

多年以來,可供Windows開發人員使用的各種數據訪問方法層出不窮。ADO和0IEDB,以及再后來的ADO.NET都為我們提供了一種統一的關系型數據庫訪問方法。MSXMI一和ADO.NET使我們能夠遍歷和操作XMI。文檔。雖然這些技術都有着不同的優點和缺點,但是它們都有着同一個問題:它們都無法讓開發人員在編寫數據訪問操作代碼的時候覺得舒服、自然。

現在,LINQ使數據訪問成為了.NET中的一個高級編程概念,它使得開發人員能夠用一種更有意義的方式來表述其所期望的查詢。LINQ能夠如此的強大,那是因為它讓開發人員能夠完全依靠智能感知技術來創建類型安全的數據訪問代碼和編譯期的語法檢查。

Paul Kimmel做了一件非常漂亮的事情,因為他用一種簡潔而又完整的方式介紹了LINQ。他不僅使你了解了LINQ,而且還非常專業地闡述了諸如匿名類型(Anonymous rype)以及Lambda表達式(Lambda Expression)等概念。本書中的示例代碼給出了一些利用該技術的應用程序,它們都是以一種簡明扼要的方式呈現出來的。這是一本非常不錯的圖書,可以在周六早晨沏一壺咖啡邊喝邊看。我希望你也能研讀一下這本書,然后你會跟我一樣從中學到很多知識的。

Darryl Hogan
Architect Evangelist,Microsoft
網路書店 類別 折扣 價格
  1. 新書
    87
    $308