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