<!--
  Title: Awesome LINQ
  Description: A curated list of amazingly awesome LINQ resources.
  Author: aloisdg
  -->

# Awesome LINQ

## Introduction

A curated collection of awesome LINQ libraries, tools, and more. The goal is to build a categorized community-driven collection of very well-known resources.

Inspired by [awesome-dotnet](https://github.com/quozd/awesome-dotnet), [awesome-regex](https://github.com/aloisdg/awesome-regex) and the whole `awesome-*` trend on GitHub.

Sharing, suggestions and contributions are always welcome! Please take a look at the [contribution guidelines and quality standard](https://github.com/aloisdg/awesome-linq/blob/master/CONTRIBUTING.md) first. Thanks to all contributors, you're awesome and wouldn't be possible without you!

## Libraries

### Queries

- [LINQ to Bing](https://linqtobing.codeplex.com) - LINQ provider for Bing search API engine
- [LINQ to CSV](https://github.com/mperdeck/LINQtoCSV) - Popular, easy to use library to read and write CSV files (by @mperdeck)
- [LINQ to DB](https://github.com/linq2db/linq2db) - Linq to database provider (by @linq2db)
- [LINQ to Excel](https://github.com/paulyoder/LinqToExcel) - Retrieve data from spreadsheets by using LINQ (by @paulyoder)
- [LINQ to Google](http://www.codeplex.com/glinq) - Query Google's Data Sources using a strongly typed syntax
- [LINQ to JSON](http://james.newtonking.com/json/help/html/LINQtoJSON.htm) - Part of the lib Newtonsoft.Json.NET (by @JamesNK)
- [LINQ to REST](https://linq2rest.codeplex.com) - Parses OData system query parameters to create a LINQ query
- [LINQ to SharePoint](http://linqtosharepoint.codeplex.com) - Query SharePoint lists using familiar LINQ syntax
- [LINQ to Twitter](https://github.com/JoeMayo/LinqToTwitter) - LINQ Provider for the Twitter API (by @JoeMayo)
- [LINQ to Wiki](https://github.com/svick/LINQ-to-Wiki) - .Net library to access MediaWiki API (by @svick)
- [LINQ to XSD](http://linqtoxsd.codeplex.com) - LINQ to XSD enhances the existing LINQ to XML technology

### Extensions

- [ExtraLINQ](https://github.com/mariusschulz/ExtraLINQ) - Extension methods for various .NET sequence types (by @mariusschulz)
- [i4o (index for objects) - Indexed LINQ](http://i4o.codeplex.com) - Extends LINQ to allow you to put indexes on your objects
- [LINQKit](https://github.com/scottksmith95/LINQKit) - Extensions for LINQ to SQL and Entity Framework power users (by @scottksmith95)
- [LINQ Extensions](https://github.com/TommasoScalici/LINQExtensions) - LINQ extensions for .NET is a collection of useful extensions methods that extends LINQ's capability. There are methods for combinatorics, mathematical sequences and others Array/IEnumerable extensions. (by @TommasoScalici)
- [LINQ Extensions Library](https://linqlib.codeplex.com) - Statistical analysis, sequence generation and manipulation, pattern detection and more
- [Mono.Linq.Expressions](https://github.com/jbevain/mono.linq.expressions) - Complement for System.Linq.Expressions (by @jbevain)
- [MoreLINQ](https://morelinq.github.io/) - Extensions to LINQ to Objects  (by @morelinq)
- [Linq.Extras](https://github.com/thomaslevesque/Linq.Extras) - Extensions to LINQ to Objects, and utilities to manipulate lists and comparers (by @thomaslevesque)

### Databases

- [RavenDB](https://github.com/ravendb/ravendb) - A linq enabled document database for .NET (by @ravendb)

### Miscs

- [L2ST4](http://l2st4.codeplex.com) – T4 based code generation to replace the default code generated from the DBML file with LINQ to SQL
- [LINQ IQueryable Toolkit](http://iqtoolkit.codeplex.com) - Build your own LINQ provider written by the mind behind LINQ to SQL
- [ReLinq](http://relinq.codeplex.com) - Create full-featured LINQ providers. ReLinq is used by EF 7 and NHibernate
- [LINQBridge](https://bitbucket.org/raboof/linqbridge) - Complete re-implementation of LINQ to Objects for projects targeting Microsoft .NET Framework 2.0
 
## Tools

- [LINQPad](http://www.linqpad.net) - An awesome tool to test and prototype LINQ queries.
- [Linqer](http://sqltolinq.com) - Convert SQL query to LINQ
- [LINQ to Entity query visualizer](https://visualstudiogallery.msdn.microsoft.com/99468ece-689b-481c-868c-19e00e0a4e69) - View Native SQL of LINQ to entities ObjectQuery in Visual Studio 

## Samples

- [101 LINQ Samples](https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b) - Sample covering all LINQ functionality and demonstrating LINQ with SQL, DataSets, and XML
- [LINQ - Sample Queries](https://code.msdn.microsoft.com/LINQ-Sample-Queries-13a42a54) - This project contains about 101 samples using LINQ

## Readings

- [10 LINQ Myths](http://www.albahari.com/nutshell/10linqmyths.aspx) - Ten root causes of the most common misunderstandings
- [SQL queries in LINQ](http://www.codeducky.org/sql-queries-in-linq)
- [The 6 best practices for writing LINQ extension methods](http://firstclassthoughts.co.uk/Articles/Design/LINQExtensionMethodsBestPractices.html) (by @kbilsted)
- [Why LINQ beats SQL](https://www.linqpad.net/WhyLINQBeatsSQL.aspx)

## Tutorials

- [LINQ for Beginners](http://www.exceptionnotfound.net/linq-for-beginners/) - Let's see some examples, and explore what LINQ does for us (by @exceptionnotfound)
- [LINQ: Test-Driven Learning](https://github.com/MartinChavez/LINQ) - Help the user further study LINQ with a test-driven approach (by @MartinChavez)

## Exercices

- [LINQ Quiz](http://www.albahari.com/nutshell/linqquiz.aspx) - Take the following short quiz and test your knowledge of LINQ!

## Implementations

- [CLinq](https://linqextensions.codeplex.com/) - LINQ support for the C++/CLI language
- [go-linq](https://github.com/ahmetalpbalkan/go-linq) - .NET LINQ-like query methods for Go (by @ahmetalpbalkan)
- [hxLINQ](https://github.com/andyli/hxLINQ) - An implementation of LINQ in Haxe (by @andyli)
- [Jinq](https://github.com/my2iu/Jinq) - LINQ-style queries for Java 8 (by @my2iu)
- [LINQ in JavaScript](https://github.com/aaronpowell/linq-in-javascript) - Use ES6 iterators for proper lazy evaluation (by @aaronpowell)
- [Linq](https://github.com/pfultz2/Linq) - LINQ for list comprehension in C++ (by @pfultz2)
- [Linq](https://github.com/RyujiSamejima/Linq) - Objective-C implementation of LINQ (by @RyujiSamejima)
- [LinqToObjectiveC](https://github.com/ColinEberhardt/LinqToObjectiveC) - Brings a Linq-style fluent query API to Objective-C (by @ColinEberhardt)
- [linq](https://github.com/fusonic/linq) - PHP implementation of LINQ 2 Objects (by @fusonic)
- [linq](https://github.com/zx48/linq) - LINQ support for Go (by @zx48)
- [linqts](https://github.com/kutyel/linq.ts) - LINQ for TypeScript (by @kutyel)
- [linq.js](https://github.com/mihaifm/linq) - LINQ for JavaScript library packaged for node.js (by @mihaifm)
- [linq4j](https://github.com/julianhyde/linq4j) - A port of LINQ (Language-Integrated Query) to Java (by @julianhyde)
- [node-linq](https://github.com/contra/node-linq) - LINQ for node (by @contra)
- [SINQ](https://github.com/slazyk/SINQ) - LINQ for Swift - Swift Integrated Query (by @slazyk)
- [Pinq](https://github.com/TimeToogo/Pinq) - PHP Integrated Query, a real LINQ library for PHP (by @TimeToogo)
- [YaLinqo](https://github.com/Athari/YaLinqo) - Yet Another LINQ to Objects for PHP (by @Athari)

---

## Lists

You may want to look to [awesome-dotnet](https://github.com/quozd/awesome-dotnet) by @Quozd, [awesome-dotnet](https://github.com/Valien/awesome-dotnet) by @Valien or [awesome-test-automation (C# section)](https://github.com/atinfo/awesome-test-automation/blob/master/c%23-test-automation.md) by @atinfo. Also [.NET libraries that make your life easier](https://github.com/tallesl/.NET-libraries-that-make-your-life-easier) by @tallesl deserves a mention.

Other amazingly awesome lists can be found in the [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) list, the [awesome](https://github.com/sindresorhus/awesome) list or if you want [more lists](https://github.com/jnv/lists).
