I learned C# back in 2006, and recently tried to get back into it. I have learned then that they added something called LINQ Extensions to C#3.0. Now I am familiar with extension methods, and I'm just pondering the specifics of those related to IEnumerables.
Earlier today, me and one of my colleagues were debating whether or not the following blocks of code were equivalent:
List<int> integers;
IEnumerable<int> subResult = items.Where(i => IsPrime(i));
IEnumerable<int> orderedResult = subResult.OrderBy(i => i);
versus
List<int> integers;
IEnumerable<int> result = items.Where(i => IsPrime(i)).OrderBy(i => i);
He told me the latest was more efficient because the extension used late querying of it's source. I'm not quite sure I understood what he meant, and I was wondering if he was right.