LINQ Extensions

This project implements several useful extensions for the LINQ project. Currently, the project includes several functions required to allow composing LINQ query in C# from several simple functions (for example when building a LINQ query dynamically at runtime as described in one of the articles linked below). The project also implements several classes to simplify writing code in a functional way, including support for representing lazy computations. Finally, the project implements LINQ support for the C++/CLI language, which uses advanced operator overloading facilities provided by this language (in contrast to extending the language like in C# 3.0).

Project Links

Articles about LINQ and C# 3.0

  • Using custom grouping operators in LINQ (2/7/2010)

    In LINQ, we can group data using the "group by" clause. However, there are other potentially useful implementations of grouping. For example, we may want to group only adjacent elements or group ascending or descending parts of the data. This article shows how to use custom behavior when grouping data using "group by" in LINQ query.

  • Source code for Real World Functional Programming available! (2/12/2009)

    Just a short update regarding the book I'm working on. First of all, the source code for the first 11 chapters is now available! Secondly, I did some changes to the TOC and you can now find the commented TOC on the book web site.

  • Functional Programming in .NET using C# and F# (Manning Greenpaper) (12/11/2008)

    This article is partially an excerpt from my book. It introduces the benefits of functional pogramming, and explains the essential aspects of the functional style using F# and C# 3.0. Finally, it also shows how functional style influences the application architecture.

  • Reactive Programming (IV.) - Developing a game in Reactive LINQ (11/24/2008)

    In this article, we'll implement a simple iteractve game using the Reactive LINQ project. The article shows that this way of handling events gives us amog other things a great degree of composability.

  • Reactive Programming (III.) - Useful Reactive LINQ Operators (11/21/2008)

    In the previous article, I introduced Reactive LINQ. Today, we're going to look at other operators that canbe used for working with events. We'll see aggregation is useful and how to dynamically change (switch) behavior.

  • Reactive programming (II.) - Introducing Reactive LINQ (11/19/2008)

    In the second part of the series about reactive programming, I introduction the Reactive LINQ project, which allows writing event processing code in C# using LINQ queries.

  • Reactive programming (I.) - First class events in F# (11/16/2008)

    The LINQ project and changes in C# 3.0 are interesting because they allow implementing many ideas from functional languages in C#. In this article I'll explain "first-class events" in F# and later I'll implemet similar concept using LINQ.

  • Calculating with infinite sequences on MSDN (11/13/2008)

    About a year ago, I wrote an article about infinite sequences on MSDN. I remembered about it this week, because these topics will be discussed in the book I'm working on as well...

  • Functional Programming in .NET book - An update (10/20/2008)

    Recently, I announced on my blog that I’m working on a book for Manning called Real-world Functional Programming in .NET. It is more than a month since I wrote about it, so here is a brief update...

  • Asynchronous Programming in C# using Iterators (11/15/2007)

    In this article we will look how to write programs that perform asynchronous operations like manipulation with network in C# using iterators without the typical inversion of control caused by the use of delegates.

  • Lazy Computation in C# on MSDN (10/6/2007)

    I think that one of the interesting things about C# 3.0 is that it gives you the ability to use many techniques known from functional languages...

  • Building LINQ Queries at Runtime in F# (8/18/2007)

    In this article I will introduce FLinq, the F# support for language integrated query and show how we can construct a database queries dynamically in a type-safe way in F#.

  • Building LINQ Queries at Runtime in C# (7/30/2007)

    Common criticism of LINQ is that it doesn't support a scenario where queries are build dynamically at the runtime. In this article I show that this can be acutally done very well for most of the common scenarios.

  • CLinq - LINQ support for the C++/CLI language (3/2/2007)

    CLinq project is a library that makes it possible to use LINQ technologies from the C++/CLI language.

  • Can't return anonymous type from method? Really? (1/23/2007)

    This article describes anonymous types - one of the new C# 3.0 features and shows interesting trick that can be used when returning anonymous type from method.

  • Concepts behind the C# 3.0 language (10/15/2006)

    In this article I'll describe concepts that influenced the design of the C# 3.0. Most of these concepts are known from other programming languages like Haskell, LISP or languages developed at Microsoft Research.

  • LINQ extensions - Simplified keyword search (7/28/2006)

    Article describes LINQ extension that adds support for returning rows that contain any or all of specified keywords in string column.

  • Calling functions in LINQ queries (6/10/2006)

    This article describes method that allows you to reuse parts of LINQ queries across data access layer.

Published: October 11, 2007 02:42