Immediate Execution of LINQ Query:

Immediate execution is the reverse of deferred execution. It forces the LINQ query to execute and gets the result immediately. The 'To' conversion operators execute the given query and give the result immediately.

Method Syntax:

In the following example, ToList() extension method executes the query immediately and returns the result.

C#: Immediate Execution
            
IList<Student> teenAgerStudents = 
                studentList.Where(s => s.age > 12 && s.age < 20).ToList();

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

Query Syntax:

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

The above query will not execute immediately. You won't find any result as shown below:

Immediate Execution

Query Syntax doesn't support 'To' operators but can use ToList(), ToArray() or ToDictionary() for immediate execution as below:

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()

You can see the result in the teenAgerStudents collection, as below:

Immediate Execution

Further Reading: