Thinking in LINQ: Harnessing the Power of Functional Programing in .NET Applications

  • 3h 1m
  • Sudipta Mukherjee
  • Apress
  • 2014

LINQ represents a paradigm shift for developers used to an imperative/object oriented programming style, because LINQ draws on functional programming principles. Thinking in LINQ addresses the differences between these two by providing a set of succinct recipes arranged in several groups, including:

  • Basic and extended LINQ operators
  • Text processing
  • Loop refactoring
  • Monitoring code health
  • Reactive Extensions (Rx.NET)
  • Building domain-specific languages

Using the familiar "recipes" approach, Thinking in LINQ shows you how to approach building LINQ-based solutions, how such solutions are different from what you already know, and why they’re better. The recipes cover a wide range of real-world problems, from using LINQ to replace existing loops, to writing your own Swype-like keyboard entry routines, to finding duplicate files on your hard drive. The goal of these recipes is to get you "thinking in LINQ," so you can use the techniques in your own code to write more efficient and concise data-intensive applications.

Who this book is for

.NET programmers who are comfortable with some high level programming language like C++/C#. Prior knowledge of LINQ is helpful but not required.

About the Author

Sudipta Mukherjee is an experienced programmer. Born in Shibpur, a town in the Howrah district of West Bengal in India, he grew up in Bally, another small town in the Howrah district. He has been working with C# and LINQ since they were first released, and is an enthusiastic advocate for LINQ. Sudipta is a prolific author, whose previous books include Data Structures Using C and .NET 4.0 Generics: Beginner's Guide.

His interests are data structure, algorithms, text processing, machine learning, natural language processing, programming languages, and tools development.

In this Book

  • Thinking Functionally
  • Series Generation
  • Text Processing
  • Refactoring with LINQ
  • Refactoring with MoreLINQ
  • Creating Domain-Specific Languages
  • Static Code Analysis
  • Exploratory Data Analysis
  • Interacting with the File System