While I would not consider myself an expert on Microsoft’s LINQ technology, I would definitely consider myself an enthusiast. Others might call me a LINQ evangelist. Either way, I think LINQ is really cool.
The reason that computers exist is to process data. And rarely does anyone need to work with a data set with only one data point. In fact, the second thing every budding computer scientist and programmer learns (after “Hello world.”) is how to run a loop. Processing multiple pieces of similar data and doing work or creating new collections of data is something we all do. Entire languages have been written to handle this processing model, namely SQL.
Microsoft has done us a big favor in giving us LINQ, which is a query language subset integrated into the C# language. I recently gave a presentation at work on LINQ and its uses. I’m posting both the slides from the presentation, as well as a Visual Studio solution file containing code examples displaying some of the concepts covered in the slides.
Maybe you will find some use for this information.
Update 11/6/2015: I found a bug in the code files as I revisited this presentation. There were yield break; s in the example implementations. They would cause the code to exit completely rather than exit the current iteration. This has been fixed.