How queries can be executed immediately with operators such as ToList(). : 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, 8, 6, 7, 2, 0 };

        int i = 0;
        var q = (
            from n in numbers
            select ++i)
            .ToList();

        // The local variable i has already been fully
        // incremented before we iterate the results:
        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