Skip to content
A Task-based LINQ designed to work with async/await
C#
Branch: master
Clone or download
anaisbetts Merge pull request #2 from JamesTryand/master
updated the Rx packages to use the latest stable version
Latest commit f2cf9f4 Feb 28, 2015
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.nuget Initial Import Apr 1, 2012
LinqToAwait forgot to update the version and nuspec files Feb 28, 2015
NuGet forgot to update the version and nuspec files Feb 28, 2015
.gitignore Add packages since we're using NuGet Package Restore Apr 2, 2012
LICENSE Add License Apr 2, 2012
LinqToAwait.sln Add some WinRT goodness Apr 2, 2012
README.md Update README.md Sep 13, 2012

README.md

LinqToAwait

In a world where many methods return Task<T> or other Awaitable types (especially in WinRT), LINQ can't be used nearly as easily. Enter LinqToAwait:

using System;
using System.Reactive.Linq;
using LinqToAwait;

var inputs = new[] { 
    "http://www.google.com", 
    "http://www.yahoo.com", 
    "http://www.aol.com", 
};

IEnumerable<string> results = await inputs.AsAsync()
    .WhereAsync(async x => await IsPageInTop10WebSitesByTrafficAsync(x))
    .SelectAsync(async x => await DownloadPageAsync(x))
    .Select(x => x.Substring(0, 50))
    .GetResults();

>>> ["<html>...."]

Where does this work?

You're going to need Visual Studio 2012 - you can use LinqToAwait with .NET 4.5 applications.

Hey, isn't this kind of like Rx?

It is Rx! However, it is a simplification of the API used for a more specific use-case. Instead of choosing async/await or Rx, LinqToAwait helps you use both at the same time, applying the most straightforward technique for the particular problem.

How do I get started?

It's .NET, how else? Use NuGet!.

Install-Package LinqToAwait
You can’t perform that action at this time.