A deferred execution query is reevaluated when you reenumerate:

   
 

using System;
using System.Collections.Generic;
using System.Linq;
public class MainClass {
    public static void Main() {

        var numbers = new List<int>() { 1, 2 };

        IEnumerable<int> query = numbers.Select(n => n * 10);
        foreach (int n in query) Console.Write(n + "|"); 

        numbers.Clear();
        foreach (int n in query) Console.Write(n + "|"); 

    }
}

    



This entry was posted in LINQ. Bookmark the permalink.