延期执行linq c#Tolower toupper tostring

时间:2017-04-06 10:41:12

标签: c# deferred-execution

我想知道我什么时候这样做:

IQueryable<customer> customers = new IQueryable<customer>();
var customers = db.customers.Where(x=> x.Name.ToLower() == "john");

延迟执行是否因使用“ToLower()或ToUpper或Tostring”之类的方法而停止?

1 个答案:

答案 0 :(得分:2)

  

延迟执行是否停止使用&#34; ToLower()或ToUpper或Tostring&#34;等方法?

调用哪个方法行x.Name.ToLower() == "john"不会被执行无关紧要(实际上不会调用完整的Where())除非customers变量具体化或枚举,或者除非通过在查询结束时调用ToList()将结果存入内存。