直到实际迭代查询返回的序列后,才执行 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
}
PS 我正在使用 Linq-To-EF,如果它有什么不同的话。