This article is a graph of how we reached up to LINQ, and the evolution of C# from 1.0 to 3.5.
This article explains how C# evolved from simple if statement to the delegate and anonymous methods and finally to the LINQ
http://www.codeproject.com/KB/cs/DemystifyLINQ.aspx