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>的過程,
 
 
DataReader、ArrayList等類物件均可循此途徑來與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 資料庫開發聖典一書中,第三章末尾,對這種應用及實作有相當多的著墨。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值