Linq to Objects
Ling is a programming paradigm that melds a declarative approach with the more traditional1 procedural approach. Because the declarative approach is different from the procedural approach used in other C# code, it requires a different mental model. Until you have become comfortable with that new model, the code is going to be a bit puzzling at times, but hang in there. There is a lot to like in Linq; you can use it to write code that is smaller, easier to write and understand, and less likely to contain bugs.
There are three main parts of the Microsoft Linq offering2: