LINQ 語法簡介

Download Report

Transcript LINQ 語法簡介

LINQ 語法簡介
設計人:顏嘉君
LINQ 概觀
Language-Integrated Query
Anders Hejlsberg微軟首席架構師發起
程式語言內建 query
架構






語言層級
技術類型
資料來源類型
語言層級

C#


VB


C# 3.0
VB 9.0
其他程式語言
技術類型
LINQ to Object
 LINQ to ADO.NET

LINQ to DataSet
 LINQ to SQL


LINQ to XML
資料來源類型
物件:集合, 陣列,字串等
 關連資料庫
 DataSet
 XML

LINQ 優點
可以用單一且一致的LINQ語法查遍所有
資料來源
 利用.NET資源
 編譯時期的語法檢查,可以及早發現錯誤,
不像SQL語法要到執行期才能發現。
 強制型別檢查,可以事先檢查資料型態是
否相符
 VS 2008 的支援

IEnumerable, IEnumerator

IEumerable


GetEnumerator
IEnumerator
MoveNext
 Reset

System.Linq 命名空間


類別
 Eumerable
 Lookup
 Queryable
介面
 IGouping
 ILookup
 IOrderedEnumerable
 IOrderedQueryable, IOrderedQueryable<T>
 IQueryable, IQueryable<T>
 IQueryProvider
Enumerable 擴充方法

過濾
OfType
 Where


投影
Select
 SelectMany


群組
GroupBy
 ToLookUp

Enumerable 擴充方法(二)


排序
 OrderBy, OrderByDescending
 ThenBy, ThenByDescending
彙總
 Aggregate
 Average
 Count
 LongCount
 Max
 Min
 Sum
Enumerable 擴充方法(三)

關連
Join
 GroupJoin


集合
Distinct
 Except
 Intersect
 Union

Enumerable 擴充方法(四)

建構
DefaultEmpty
 Empty
 Range
 Repeat


檢核
All
 Any
 Contains

Enumerable 擴充方法(五)

擷取
Skip, SkipWhile
 Take, TakeWhile


單一元素
First, FirstOrDefault
 Last, LastOrDefault
 ElementAt, ElementAtOrDefault
 Single, SingleOrDefault

Enumerable 擴充方法(六)

轉換
AsEnumerable
 ToArray
 ToList
 ToDictionary
 ToLookup
 Cast
 OfType
