Download LINQPad

Download LINQPad 5 for .NET Framework 4.6 / 4.7
  • Super-lightweight setup
  • Standard edition free (no expiry)

LINQPad 5 runs side-by-side with LINQPad 4.

If you have a paid edition of LINQPad 4, please read the licensing notes.

More Download Options

The AnyCPU builds default to X64 rather than X86.
Current release version: 5.36.03

5.36 is now RTM!


  • There's now a built-in interactive RegEx utility! Press Ctrl+Shift+F1, or choose the option on the Help menu. The utility is implemented as a LINQPad script - click on the built-in samples to view.
  • LINQPad now includes a set of HTML controls for writing interactive queries. Unlike WPF and Windows Forms controls, these render in the same output panel as your results. To use them, just instantiate and dump them:
      // All the controls live in the LINQPad.Controls namespace.
      var txt = new TextBox().Dump();
      txt.TextInput += (sender, args) => $"You typed {txt.Text}".Dump();
    Click here for an interactive tutorial.
  • The NuGet search engine now recognizes SemVer2 prerelease packages, and uses a new faster API.
  • You can now reference NuGet packages that include only native DLLs, such as Microsoft.ChakraCore. To invoke the native methods, set the query type to 'C# Program' and declare the methods that you want to call prefixed with the appropriate DllImport attributes.
  • LINQPad now identifies NuGet packages with duplicate extension attributes in Content_Types.xml, and automatically removes the duplicates so that the package loader will not throw an InvalidOperationException.
  • C# 7.3 is now supported.
  • When connecting to SQL Azure, you can now opt for Universal Active Directory authentication, with support for multi-factor authentication.
  • There are new methods in LINQPad's Util class to load/save strings or byte arrays to a central machine store (shared between queries). These methods are Util.SaveString, Util.SaveBytes, Util.LoadString, and Util.LoadBytes.
  • LINQPad's embedded ILSpy has now been updated to V4.
  • You can now enable or disable compiler optimizations on a per-query basis, by starting your query with the following code:
    #LINQPad optimize+    // To force optimizations on for this query
    #LINQPad optimize-    // To force optimizations off for this query
  • In the SQL connection dialog, when you choose the 'Display all databases in TreeView' option, a checkbox now appears to lets you choose whether or not to automatically populate the database list on startup.
  • (F#) When using type providers, LINQPad now properly escapes spaces in member names in autocompletion listings.
  • (F#) There's now an option in Edit | Preferences | Advanced > Execution to force LINQPad to always use its internal F# compiler, even when F# has been installed on the computer. This can be useful when F# has been partially or improperly installed.
  • When using LPRun to execute scripts via the command-line, you can now control the %errorlevel% explicitly - either by returning an integer value from Main or by setting Environment.ExitCode. As before, if your script throws an exception, the %errorlevel% will be 1.
  • LINQPad 5.36 supports the latest Entity Framework Core driver, which interoperates with all versions of EF 2.x. Support for .NET Standard assemblies has been further improved, with automatic resolution of NuGet dependencies listed in the .deps.json file.


  • The debugger now steps correctly through F# programs.
  • An error relating to resolving FSharp.Core.dll when disassembling F# programs has been fixed.
  • Captured variables masked by local variables now display correctly in the Debug Locals window.
  • When dumping a non-enumerable item to a grid, nullable bools no longer cause a formatting error.
  • When displaying XML documentation summaries in autocompletion listings and tooltips, <para> tags are no longer ignored.
  • A performance problem in the editor caused by a large number of NuGet assemblies has been fixed.
  • A bug in the handling of credentials in authenticated NuGet feeds has been fixed.
  • Util.Cache can now be used reliably with very large objects.
  • For users that have reported very slow autocompletion when running on Windows 10 with 3 monitors, this should now be fixed.
  • This build includes a workaround for a .NET security issue.


  • This build supports newer versions of the experimental Roslyn assemblies, so you can play with C# 8 features such as ranges, indices, and nullable reference types. To enable, go to Edit | Preferences > Query.
  • LINQPad will now download NuGet release packages with pre-release dependencies.
  • The 'Navigate To' dialog (Control+comma) now includes shortcuts to open and run a query in one step.
  • There are now Canvas and SVG controls, in addition to the HTML controls added in 5.36.
  • Window popups generated by a query in the AnyCPU edition now reliably appear in front of the host process.
  • The built-in charting feature now shows value tooltips.
  • The NuGet package manager is now more robust to circular references.
  • The rename-symbol feature now works with named tuples.
  • The namespace cleanup feature now takes into account NuGet references inherited from 'My Extensions'.
  • The integrated ILSpy has been updated to the latest release (
  • The CommandTimeout property of DataContext is now honored when calling ExecuteQueryDynamic and ExecuteStoredProcedure.
  • (Paid editions) If you activate your license on an Amazon EC2 instance, it will now remain valid if the underlying hardware changes (just as with Azure VMs and Roles).
  • A bug in the Debugger watch window when calling methods on closed generic types has been fixed.
  • Observables inside DumpContainers now render reliably.
  • The Dump pipeline now explicitly supports Json.NET objects.
  • Util.WriteCsv now recognizes ExpandoObjects.
  • There's now an OpenQuery method in the Util class to open and run a query in the UI.

Download beta:

Download LINQPad 5.37.6 (Standard X86)
Download LINQPad 5.37.6 (Any CPU)

LINQPad 5 vs LINQPad 4

LINQPad 5 targets .NET Framework 4.6/4.7 and includes the following major new features:

  • Full support for C# 7 and VB 15.
  • Background code-checking - both parsing and binding errors show with red squigglies. Resolved symbols display in turquoise, and unresolved symbols in red. Compilation is quicker, because most of the work is done in advance.
  • (Pro/Premium Editions) Automatic code formatting, 'Rename Symbol', 'Jump to Definition', and 'Find References'.
  • (Pro/Premium Editions) Autocompletion for VB, including member listings, parameter info, quick info, background compilation, smart-tags, and auto-formatting.
  • (Pro/Premium Editions) Autocompletion for F#, including member listings, parameter info and quick info.
  • Built-in F# compiler (so fsc.exe is not required) with full F# autocompletion.
  • Built-in Roslyn Syntax Tree Visualizer. The syntax tree for your query appears automatically as an output tab, and you can invoke it programmatically with .DumpSyntaxTree() or .DumpSyntaxNode().
  • Authenticated feed support within the NuGet package manager.

If you own a Pro or Premium edition of LINQPad 4, LINQPad 5 is a paid upgrade.


LINQPad standard edition is free to download and use.

LINQPad is not an open-source product and the source code is protected by copyright laws.  Nonetheless, you are free to disassemble the executable to satisfy your curiosity. The author provides no warranties, and accepts no liability for direct or consequential damages. Read full EULA

Licensing Notes on LINQPad 5

If you purchased a paid edition of LINQPad 4 prior to 1 January 2015, you'll need to purchase an upgrade to use the paid features of LINQPad 5. You can find out here whether your license covers V5, and the cost of upgrading. Upgrade discounts are available for a limited time, and further discounts are available right now to raise the user count or edition.