Linq之 推遲查詢 VS 立即查詢

2022-02-11 01:48:58 字數 1696 閱讀 3114

推遲查詢(也叫:延遲查詢等):總之它的大概意思是指「在執行定義查詢期間,查詢不會執行而在迭代資料項時執行」{網上理解:不是在查詢建立的時候執行,而是在遍歷的時候執行}……

看看《c#高階程式設計》怎麼解釋的?

-->擴充套件方法 where(),它使用 yield  return 語句返回謂詞為 true 的元素。因為使用了 yield  return 語句,所以編譯器會建立乙個列舉器,在訪問列舉中的項後,就返回它們………………

public

static ienumerablewhere(this ienumerablesource,

func

bool>predicate)

推遲查詢

//

推遲查詢的執行

list names = new list ;

var namewithm = from n in names where n.startswith("

m") orderby n select

n; console.writeline(

"第一次查詢……");

foreach (var item in

namewithm)

names.add(

"majo");

names.add(

"meke");

names.add(

"mzmi");

names.add(

"dapi");

console.writeline(

"第二次查詢……");

foreach (var item in

namewithm)

得出的結果:

立即查詢

ilist inamewithm = (from n in names where n.startswith("

m") orderby n select

n).tolist();

console.writeline(

"第一次查詢tolist……");

foreach (var item in

inamewithm)

names.add(

"majo");

names.add(

"meke");

names.add(

"mzmi");

names.add(

"dapi");

console.writeline(

"第二次查詢tolist……");

foreach (var item in

inamewithm)

得出結果

使用這些「。呼叫擴充套件方法toarray()、toenumerable()、tolist()等」 可以實現立即執行效果

LINQ 之 基本 LINQ 查詢操作

在 linq 查詢中,第一步是指定資料來源。像在大多數程式語言中一樣,必須先宣告變數,才能使用它。在 linq 查詢中,最先使用from子句的目的是引入資料來源和範圍變數。queryallcustomers 是 ienumerable型別 資料來源 customers 和範圍變數 cust var ...

LINQ 查詢彙總

子查詢 描述 查詢訂單數超過5的顧客資訊 查詢句法 var子查詢 from c in ctx.customers where from o in ctx.orders group o by o.customerid into o whereo.count 5 select o.key contain...

Linq 基礎查詢

linq查詢語句編寫工具可以用linqpad,挺好用的 一下是我自己學習linq to sql的查詢語句 基本查詢 from c in workflows select c 帶條件查詢 from c in workflows where c.pid 1 select c 查詢顯示不同的列 from ...