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 mutable 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 LINQ.1 There are several implementations of LINQ readily available: LINQ to Objects, LINQ to SQL, LINQ to Dataset, LINQ to Entities, and LINQ to XML. I will be focusing on LINQ to Objects because I’ll be able to get the LINQ message across without having to incorporate extra layers and technologies.
KeywordsFunctional Programming Extension Method Query Keyword Expression Tree Static Void
Unable to display preview. Download preview PDF.
- 1.For more extensive coverage of LINQ, I suggest you check out Foundations of LINQ in C#, by Joseph C. Rattz, Jr. (Apress, 2007).Google Scholar
- 4.I first encountered Koenig’s so called fundamental theorem of software engineering in his excellent book coauthored with Barbara Moo titled Ruminations on C++ (Boston: Addison-Wesley Professional, 1996).Google Scholar