【发布时间】:2011-04-23 06:18:17
【问题描述】:
直到查询返回的序列实际被迭代后,Linq 查询才会执行。
我有一个重复使用的查询,所以我将把它封装在一个方法中。我想知道它是否会干扰延迟执行。
如果我将 Linq 查询封装成如下方法,
查询在第 2 行执行,而不是在调用该方法的第 1 行。这是正确的吗?
public IEnumerable<Person> GetOldPeopleQuery()
{
return personList.Where(p => p.Age > 60);
}
public void SomeOtherMethod()
{
var getWomenQuery = GetOldPeopleQuery().Where(p => p.Gender == "F"); //line 1
int numberOfOldWomen = getWomanQuery.Count(); //line 2
}
附:我正在使用 Linq-To-EF,如果它有什么不同的话。
【问题讨论】:
标签: c# linq deferred-execution