LINQ 立即执行查询

立即执行与延迟执行相反。它强制LINQ查询执行并立即获取结果。“ To”转换运算符执行给定的查询并立即给出结果。

方法语法

在下面的示例中,ToList()扩展方法立即执行查询并返回结果。

 C#:立即执行

IList<Student> teenAgerStudents = 
                studentList.Where(s => s.age > 12 && s.age < 20).ToList();

 VB.Net:立即执行

Dim teenAgerStudents As IList(Of Student) = 
                    studentList.Where(Function(s) s.Age > 12 And s.Age < 20).ToList()

查询语法

C#:
var teenAgerStudents = from s in studentList
                where s.age > 12 && s.age < 20
                select s;

上面的查询不会立即执行。您不会找到任何结果,如下所示:

立即执行

查询语法不支持“To”运算符,但可以使用ToList()、ToArray()或ToDictionary()立即执行,如下所示:

C#:
IList<Student> teenAgerStudents = (from s in studentList
                where s.age > 12 && s.age < 20
                select s).ToList();
VB.Net:
Dim teenAgerStudents As IList(Of Student) = (From s In studentList _
                Where s.Age > 12 And s.Age < 20 _
                Select s).ToList()

您可以在teenAgerStudents集合中查看结果,如下所示:

立即执行