linq to objects的資料來源
文/黃忠成
在
linq to objects
的架構中,只要實作了
ienumerable
介面的物件,皆可做為
linq to objects
的資料來源,那具體有那些呢?見下表。 型別
說明
ienumerable
系列
1、具型陣列,如
string
、int
、datetime
等等。
2、實作了
ienumerable
之物件,如
list
、dictionary
、collection
。
.net framework 3.5資料庫開發聖典一書中,第三章主要使用此類來演示。
ienumerable
介面
1、實作了ienumerable介面的物件,雖然廣義上而言,也能做為linq to objects的資料來源,但需透過cast、oftype函式轉換為ienumerable的過程,
見
linq
與 ienumerable 介面
datareader
、arraylist等類物件均可循此途徑來與linq to objects結合。
.net framework 3.5資料庫開發聖典一書中,這種應用不多,隱藏在cast、oftype一節。
iqueryable
介面
就層次上而言,
iqueryable
介面也屬於
linq to objects
所支援的資料來源,因為其是
ienumerable
的子代介面,當編譯器發現資料來源為實作
iqueryable
介面之物件時,會採取
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資料庫開發聖典一書中,第三章末尾,對這種應用及實作有相當多的著墨。
LINQ to Objects系列 4 表示式樹
為了進一步加深對lambda表示式的理解,我們需要掌握乙個新的知識,lambda表示式樹,可能聽名字看起來很高深和難以理解,但實際上理解起來並沒有想象中那麼難,這篇文章我想分以下幾點進行總結。1,表示式樹的語法 2,將 轉換到資料 3,探索表示式樹 4,將資料轉換到 5,iqueryable和表示式...
A 數的劃分
a 數的劃分 將整數n 分成 k份,且每份不能為空,任意兩個方案不相同 不考慮順序 例如 n 7,k 3,下面三種分法被認為是相同的。1,1,5 1,5,1 5,1,1 問有多少種不同的分法。輸入格式 第一行有兩個整數 n,k 6sample input 7 3 sample output 解題思路...
具有最大逆置數的數
題目描述 給定n個數,找出在這n個數中,具有最大逆置數的那個數。逆置數 指符號不變,但各個數字是逆置的。如整數256的逆置數是652,整數 3780的逆置數是 873。最大逆置數 指各數對應的逆置數的最大值。求具有最大逆置數的數 各數在比大小時,不是按原數比,而是按其逆置數進行比較。輸入先輸入乙個正...