LINQ To Objects 的資料來源

摘要:LINQ To Objects 的資料來源

LINQ To Objects 的資料來源
 

/黃忠成
 
    LINQ To Objects的架構中,只要實作了IEnumerable<T>介面的物件,皆可做為LINQ To Objects的資料來源,那具體有那些呢?見下表。
型別
說明
IEnumerable<T> 系列
1、具型陣列,如string[]int[]DateTime[]等等。
2、實作了IEnumerable<T> 之物件,如ListDictionaryCollection
 
.NET Framework 3.5 資料庫開發聖典一書中,第三章主要使用此類來演示。
IEnumerable介面
1、實作了IEnumerable介面的物件,雖然廣義上而言,也能做為LINQ To Objects的資料來源,但需透過Cast、OfType函式轉換為IEnumerable<T>的過程,
 
 
DataReaderArrayList等類物件均可循此途徑來與LINQ To Objects結合。
 
.NET Framework 3.5 資料庫開發聖典一書中,這種應用不多,隱藏在CastOfType一節。
IQueryable<T>介面
就層次上而言,IQueryable介面也屬於LINQ To Objects所支援的資料來源,因為其是IEnumerable<T>的子代介面,當編譯器發現資料來源為實作IQueryable<T>介面之物件時,會採取Expression Tree方式來處理LINQ 查詢式。
這是為了將LINQ查詢式轉譯成一個個Expression Node,交由特定機制,將Expression Node轉譯為其它特定系統所能接受的指令。
例如:
1LINQ To SQLLINQ To Entities Expression Node轉為
SQL 指令。
2LINQ To Active DirectoryExpression Node轉為Active  Directory API的操作。
3LINQ To Excel Expression Node 轉為Excel COM 呼叫。
 
.NET Framework 3.5 資料庫開發聖典一書中,第三章末尾,對這種應用及實作有相當多的著墨。