NEW/IMPROVED: (Premium edition users)
Same-symbol usages are now highlighted as you type. You can use
Shift+Ctrl+Up/Down to jump to the previous/next highlighted symbol.
There is now 'override' method completion when writing classes. Type 'override ' and
LINQPad will list the overridable members and complete the member signature when you choose one.
LINQPad can now automatically implement interfaces and abstract classes via a smart-tag.
A smart-tag also appears for writing new methods and constructors.
The smart-tag for importing namespaces also now appears when calling extension methods
whose namespace you haven't imported, and when a type requires disambiguation.
- Brace completion is now the default (you can disable this in Edit | Preferences | Advanced).
LINQPad now responds to the more ergonomic Alt+Enter (as well as Ctrl+.) to open a smart-tag.
And after choosing a code-fix, LINQPad automatically jumps to the next fixable error.
LINQPad now supports .NET Standard 2.0 NuGet packages and assemblies.
The NuGet package manager now has a search box for the local package cache, a vertical scrollbar for the info panel, and a "Find online" context menu
option for packages in the local cache. There's also a new 'Cleanup' button which identifies and deletes unused packages from the local cache.
- LINQPad's "power-tick" feature now works for VB queries, too.
- Autocompletion now recognizes attributes when prompting for constructor arguments.
- Ctrl+Shift+W now expands the current selection (word -> expression -> statement -> block -> type declaration), like in ReSharper. To shrink the selection, press Escape.
NEW/IMPROVED: (All users)
C# 7.1 is now supported through newer Roslyn APIs, which means you
can now use default literal expressions, and inferred tuple element names. The VB.NET compiler has been refreshed, too.
LINQPad now automatically switches between C# Expression and C# Statements when writing queries. You can disable this behavior in Edit | Preferences | Query.
- LINQPad now comes with a built-in tutorial and reference! Go to Help | Tutorial and Reference.
You can now visually deep-compare any two objects with Util.Dif:
Util.Dif (object1, object2).Dump();
You can also compare an object with itself later in time with Util.Snapshot:
var snapshot = Util.Snapshot (someObject);
someObject.Name = "...";
Util.Dif (snapshot, someObject).Dump();
Click here for examples.
- For people with multiple 'My Queries' folder locations, you can now easily switch between locations with the Ctrl+Shift+Q shortcut.
Press down-arrow or Alt+Down to utilize the drop-down of recent locations.
- There's a new shortcut, Ctrl+Shift+Y, to open 'My Extensions'.
- There's a new close button to clear the yellow error panel. The keyboard shortcut for this is Shift+Escape.
Most non-database types now dump with their properties in alphabetical order. You can change this in Edit | Preferences | Results.
You can also force or suppress alphabetical property ordering when dumping, by calling Dump(alpha:true) or Dump(alpha:false).
For databases, there's a new checkbox on the SQL connection dialog to make the columns appear alphabetically. This applies both to how they appear in the schema explorer and
the column order when dumped. Association properties are still shown last.
- There's now a button on the SQL connection dialog to copy the full connection string to the clipboard.
- With F# queries, LINQPad will now use the 4.1 compiler if installed.
- When dumping to data grids, you can now right-click the grid and elect to order the columns alphabetically.
You can now disable My Extensions on a per-query basis, to avoid a conflict with extension methods defined in the query.
Go to the Query Properties dialog (F4) and click the Advanced tab.
- Databases now appear in alphabetical order when connecting to Azure servers.
There's a new property in LINQPad's Util class called SelectedOutputPanelIndex. You can set this to change the active output panel (Results, SQL, Custom, etc.).
There's also a new property called IsDarkThemeEnabled to help you correctly render HTML and controls when customizing output.
When specifying a custom .config file for a query, you can now point to a file that uses customSource attributes to merge items from other config files.
This works even if you reference NuGet packages that require binding redirects, and LINQPad has to create a new .config file to merge the binding redirects.
- With F# queries, the DEBUG symbol is now automatically defined.
- VB queries now permit the 'Option' keyword at the start of the query, in Statements and Program mode.
- Autocompletion works more reliably with C# 7's local methods.
- A single Ctrl+Z now cleanly undoes type or member autocompletion.
- An error when displaying certain documentation tags in F# queries has been fixed.
- When running command-line queries, NuGet packages referenced in My Extensions will now automatically download.
- You can now dump ImmutableArray.Default without error.
- Calling Console.Write with an empty string no longer emits a new line.
- Multi-monitor setups in Windows 10 should now work correctly with monitors that have differing DPIs.
- The query runtime now returns Framework 4.6 when queried, to ensure full compatibility with new features.
- The latest release of BenchmarkDotNet now works correctly with LINQPad.
- LINQPad now applies the necessary binding redirects to make SQL Geography/Geometry types work with later versions of Microsoft.SqlServer.Types.dll.
- Code snippets with keyboard shortcuts that contain underscores now work correctly.
- Allowing LINQPad to access internal types of other assemblies no longer upsets F# queries.
- Focus within autocompletion listings now respects multi-part words and camel humps.
Download LINQPad 5.24.05 (Standard X86)
Download LINQPad 5.24.05 (Any CPU)
LINQPad 5 vs LINQPad 4
LINQPad 5 targets .NET Framework 4.6 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.