# 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, 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 first. Thanks to all contributors, you’re awesome and wouldn’t be possible without you!

## Libraries

### Queries

- LINQ to Bing - LINQ provider for Bing search API engine
- LINQ to CSV - Popular, easy to use library to read and write CSV files (by @mperdeck)
- LINQ to DB - Linq to database provider (by @linq2db)
- LINQ to Excel - Retrieve data from spreadsheets by using LINQ (by @paulyoder)
- LINQ to Google - Query Google’s Data Sources using a strongly typed syntax
- LINQ to JSON - Part of the lib Newtonsoft.Json.NET (by @JamesNK)
- LINQ to REST - Parses OData system query parameters to create a LINQ query
- LINQ to SharePoint - Query SharePoint lists using familiar LINQ syntax
- LINQ to Twitter - LINQ Provider for the Twitter API (by @JoeMayo)
- LINQ to Wiki - .Net library to access MediaWiki API (by @svick)
- LINQ to XSD - LINQ to XSD enhances the existing LINQ to XML technology

### Extensions

- ExtraLINQ - Extension methods for various .NET sequence types (by @mariusschulz)
- i4o (index for objects) - Indexed LINQ - Extends LINQ to allow you to put indexes on your objects
- LINQKit - Extensions for LINQ to SQL and Entity Framework power users (by @scottksmith95)
- LINQ Extensions - 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 - Statistical analysis, sequence generation and manipulation, pattern detection and more
- Mono.Linq.Expressions - Complement for System.Linq.Expressions (by @jbevain)
- MoreLINQ - Extensions to LINQ to Objects (by @morelinq)
- Linq.Extras - Extensions to LINQ to Objects, and utilities to manipulate lists and comparers (by @thomaslevesque)

### Databases

- RavenDB - A linq enabled document database for .NET (by @ravendb)

### Miscs

- L2ST4 – T4 based code generation to replace the default code generated from the DBML file with LINQ to SQL
- LINQ IQueryable Toolkit - Build your own LINQ provider written by the mind behind LINQ to SQL
- ReLinq - Create full-featured LINQ providers. ReLinq is used by EF 7 and NHibernate
- LINQBridge - Complete re-implementation of LINQ to Objects for projects targeting Microsoft .NET Framework 2.0

## Tools

- LINQPad - An awesome tool to test and prototype LINQ queries.
- Linqer - Convert SQL query to LINQ
- LINQ to Entity query visualizer - View Native SQL of LINQ to entities ObjectQuery in Visual Studio

## Samples

- 101 LINQ Samples - Sample covering all LINQ functionality and demonstrating LINQ with SQL, DataSets, and XML
- LINQ - Sample Queries - This project contains about 101 samples using LINQ

## Readings

- 10 LINQ Myths - Ten root causes of the most common misunderstandings
- SQL queries in LINQ
- The 6 best practices for writing LINQ extension methods (by @kbilsted)
- Why LINQ beats SQL

## Tutorials

- LINQ for Beginners - Let’s see some examples, and explore what LINQ does for us (by @exceptionnotfound)
- LINQ: Test-Driven Learning - Help the user further study LINQ with a test-driven approach (by @MartinChavez)

## Exercices

- LINQ Quiz - Take the following short quiz and test your knowledge of LINQ!

## Implementations

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

## Lists

You may want to look to awesome-dotnet by @Quozd, awesome-dotnet by @Valien or awesome-test-automation (C# section) by @atinfo. Also .NET libraries that make your life easier by @tallesl deserves a mention.

Other amazingly awesome lists can be found in the awesome-awesomeness list, the awesome list or if you want more lists.

linq.md Github