Book Image

Functional C#

Book Image

Functional C#

Overview of this book

Functional programming makes your application faster, improves performance, and increases your productivity. C# code is written at a higher level of abstraction, so that code will be closer to business requirements, abstracting away many low-level implementation details. This book bridges the language gap for C# developers by showing you how to create and consume functional constructs in C#. We also bridge the domain gap by showing how functional constructs can be applied in business scenarios. We’ll take you through lambda expressions and extension methods, and help you develop a deep understanding of the concepts and practices of LINQ and recursion in C#. By the end of the book, you will be able to write code using the best approach and will be able to perform unit testing in functional programming, changing how you write your applications and revolutionizing your projects.
Table of Contents (19 chapters)
Functional C#
Credits
About the Author
Acknowledgments
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface

Getting started with LINQ


Language Integrated Query (LINQ), which was introduced in C# 3.0, is a language feature of .NET Framework that enables us to query data in collections easily implementing the IEnumerable<T> interface, such as ArrayList<T>, List<T>, an XML document, and a database. It becomes easier to query any data in a collection since, using LINQ, we do not need to learn a different syntax for a different source of data. For instance, we don't need to learn SQL if we use LINQ when the data source is a database. Also, using LINQ, we don't have to learn XQuery when we deal with an XML document. Fortunately, LINQ has eased our use of a common syntax for all the sources of data.

There are two basic data units in LINQ; they are sequences, which include any object that implements IEnumerable<T>, and elements, which include the items in the sequence. Suppose we have the following int array named intArray:

int[] intArray = 
{ 
  0,  1,  2,  3,  4,  5...