Download presentation
Presentation is loading. Please wait.
1
LINQ資料查詢技術
2
Language-Integrated Query (LINQ)簡介
對Array、List、DataSet、XML、或SQL Server查詢指定資料的語言(類似 SQL語法) 必須使用C# 2008與 .Net framework 3.5以上版本 語法 如: IEnumerable<int> scoreQuery = from score in scores where score > 80 select score;
3
可查詢的對象 實作IEnumerable或IEnumerable<T>介面的集合物件,如Array、List 等 Object
DataTable, DataSet XML SQL Array
4
查詢Array
5
練習11-1 請完成上一頁投影片的程式碼
6
查詢Object
7
練習11-2 請完成上一頁投影片的程式碼
8
查詢DataTable DataTable
9
練習11-3 請完成上一頁投影片的程式碼
10
隱含型別 不須在程式中明確指定資料型別,編譯器會在編譯時才指定型別。 其型別由等號右邊的值型別所決定
使用 var 變數有個基本前提:一定要給初始值。否則編譯時會出 現錯誤:Implicitly-typed local variables must be initialized。 int i = 10; var j = 10;
11
匿名型別 匿名型別提供便利的方式將唯讀屬性集封裝至單一物件,而不必 先明確定義型別。 型別名稱是由編譯器產生。 每個屬性的型別 是由編譯器推斷。您可以使用 new 運算子搭配物件初始設定式來 建立匿名型別。 result的型別是<>f__AnonymousType0`2[System.Int32,System.String] result裡面有兩個屬性,第一個型別為System.Int32,第二個型別為 System.String,這就是上面所說,屬性的型別由編譯器推斷。 result的型別是<>f__AnonymousType0`2[System.Int32,System.String]這樣的東西,這是編譯器所產生的型別名稱,可以當做是暫時產生的名字,因為一出方法界限,又或者可以說這個變數的生命週期結束,這個型別就失去『使用上』的意義。 匿名型別與其他的reference type並無不同。從型別名稱上還可以看到,裡面有兩個屬性,第一個型別為System.Int32,第二個型別為System.String,這就是上面所說,屬性的型別由編譯器推斷。
12
練習11-4 請完成上一頁投影片的程式碼,並觀察result 及 result.ID和 result.Name的資料型態
13
查詢Object以var修改
14
練習11-5 請完成上一頁投影片的程式碼
15
查詢DataTable以var修改
16
練習11-6 請完成上一頁投影片的程式碼
Similar presentations