Deferred Query Execution: shows how query execution is deferred until the query is enumerated at a foreach statement. : Deferred Query « LINQ « C# / CSharp Tutorial






using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public class MainClass {
    public static void Main() {
        int[] numbers = new int[] { 5, 4, 1, 3, 9 };

        int i = 0;
        var q =
            from n in numbers
            select ++i;
        foreach (var v in q) {
            Console.WriteLine("v = {0}, i = {1}", v, i);
        }
    }
}








22.76.Deferred Query
22.76.1.Deferred Query Execution: shows how query execution is deferred until the query is enumerated at a foreach statement.
22.76.2.How queries can be executed immediately with operators such as ToList().
22.76.3.Shows how queries can be reused
22.76.4.Deferred Query Execution
22.76.5.Immediate Query Execution
22.76.6.A deferred execution query is reevaluated when you reenumerate:
22.76.7.most query operators is that they execute not when constructed, but when enumerated