C-style languages (including C#) are imperative in nature, meaning that the emphasis is placed on the state of the system, and changes are made to that state over time. Data-acquisition languages such as SQL are functional in nature, meaning that the emphasis is placed on the operation and there is little or no immutable data used during the process. LINQ bridges the gap between the imperative programming style and the functional programming style. LINQ is a huge topic that deserves entire books devoted to it and what you can do with it.1 There are several implementations of LINQ readily available and they are LINQ to Objects, LINQ to SQL, LINQ to Dataset, and LINQ to XML. I will be focusing on LINQ to Objects since I’ll be able to get the LINQ message across without having to incorporate extra layers and technologies.
KeywordsFunctional Programming Extension Method Expression Tree Static Void Lazy Evaluation
Unable to display preview. Download preview PDF.
- 1.For more extensive coverage of LINQ, I suggest you check out Pro LINQ: Language Integrated Query in C# 2008 by Joseph C. Rattz, Jr. (Berkeley, CA: Apress, 2007).Google Scholar
- 4.I first encountered Koenig’s so-called fundamental theorem of software engineering in his excellent book co-authored with Barbary Moo titled Ruminations on C++ (Boston, MA: Addison-Wesley Professional, 1996).Google Scholar