LINQPad v7.4.9 (Any CPU) Premium (x64)

LINQPad v7.4.9 (Any CPU) Premium (x64)

LINQPad v7.4.9 (Any CPU) Premium (x64)
LINQPad v7.4.9 (Any CPU) Premium (x64)

LINQPad is not just for LINQ queries, but any C#/F#/VB expression, statement block or program. Put an end to those hundreds of Visual Studio Console projects cluttering your source folder and join the revolution of LINQPad scripters and incremental developers. Reference your own assemblies and NuGet packages. Prototype your ideas in LINQPad and then paste working code into Visual Studio. Or call your scripts directly from the command-line. Experience LINQPads rich output formatting, optional debugger and autocompletion, and the magic of dynamic development and instant feedback!

The .NET Programmers Playground
Instantly test any C#/F#/VB snippet or program
Query databases in LINQ (or SQL) SQL/CE/Azure, Oracle, SQLite & MySQL
Enjoy rich output formatting, optional autocompletion and integrated debugging
Script and automate in your favorite .NET language
Super lightweight single 15MB executable!
Standard edition free, with no expiry

LINQPad: The Ultimate .NET Scratchpad
LINQPad can run not only LINQ queries, but any C#/F#/VB expression, statement or program.
For instance, have you ever needed to test a DateTime format string? In LINQPad, just enter the expression and hit F5:

With LINQPad's instant edit/run cycle and optional full autocompletion, you'll have code snippets fully tweaked in less time than it takes to bring up Visual Studio's Add Reference dialog!

What about testing a regular expression? You'll start using Regex a lot more once you have LINQPad:

Notice how LINQPad nicely formats the Match object. Complex object graphs are much more readable in LINQPad's output window.

To run a series of statements, just change the "Language" combo to Statements (or hit Ctrl+2):

Again, you can keep tweaking your code until it does what you want, then paste working code into Visual Studio.

You can even run a full program with additional methods: just change the Language to Program, and LINQPad will wrap your code in a Main method so you can write additional methods and classes.

Need to reference custom assemblies or NuGet references? No problem: just hit F4 for the Add Reference dialog.

Additional benefits:

LINQPad reports the execution time in the status bar, so you won't have to manually create a Stopwatch class for performance testing.
Want to test a variation of your snippet? Ctrl+Shift+C instantly clones your snippet so you can run another version side-by-side.
You can return to saved queries in single click, thanks to the My Queries treeview. Use LINQPad as a scripting tool!
You can call Dump on any WPF or Windows Forms control and LINQPad will render it. This is a great way to write custom visualizers.
In the My Queries treeview, you'll see a query called My Extensions. Here's where you can write methods and classes that will be available to all queries.

LINQPad 7.4

New Features

Referencing the Windows SDK libraries for Windows 10 and 11 is now supported via a checkbox in the Query Properties dialog. This feature is also activated implicitly when a package in the NuGet dependency graph indicates a framework dependency on Windows 10 or Windows 11. This avoids the assembly resolution errors that might otherwise result, and obviates the need to reference Microsoft.Windows.SDK.NET.ref.
LINQPad's startup time has been improved though parallel initialization and early JITing.
You can now edit credentials in the NuGet Package Manager Source Settings dialog without needing to restart LINQPad.
The "Copy assemblies into local folder" option in Query Properties now also copies native libraries. There's also a new option to copy native and platform-specific files into a runtimes\ subdirectory.
There's now a keyboard shortcut (Alt+Shift+Minus) to restore NuGet packages. LINQPad will also now restore packages automatically (without prompting) when opening queries, connections or switching framework versions, if the package has already been downloaded for another .NET version.
LINQPad's ability to display syntax-highlighted text has been improved with the new Util.SyntaxColorText method. This allows you to dump syntax-highlighted text to the main results window (as well as a separate panel):

Util.SyntaxColorText (csharp, SyntaxLanguageStyle.CSharp).Dump(); // Dump inline
Util.SyntaxColorText (json, SyntaxLanguageStyle.Json) .DumpToNewPanel(); // Dump to separate panel

You can also ask LINQPad to perform auto-formatting with the autoFormat argument (this works with C#, VB, XML and JSON).
The assembly resolution log in Query Properties > Advanced now includes an interactive NuGet dependency graph.
When connecting to custom EF Core contexts, LINQPad now recognizes when you apply the [System.ComponentModel.Category] attribute to DbSet properties and groups tables accordingly.
The Util.ToExpando method now has an includePrivate option to include non-public properties and fields.
Observables with many rows now render more efficiently.
When you copy text from the editor, LINQPad now populates the clipboard with HTML-based syntax-highlighted text that can be pasted into web-based mail apps as well as Office applications. Resolved symbol markup is also now included.
The debugger's Call Stack window now shows unwinding stack frames in green, when stepping through exception blocks.
There's now an option to disable executing selected code in Edit | Preferences > Advanced. (You can then use Alt+Shift+F5 to execution a selection.)
Calling Environment.Exit(0) now terminates the query process without generating an error message.
LINQPad's HTML controls are now faster and more robust.
Autocompletion on object initializers and with expressions has improved.
The LINQPad.Controls namespace now includes an IFrame control for dumping complete HTML documents or web sites inline.
LPRun now automatically restores EF Core dependencies if required.


The debugger now steps correctly through catch and finally blocks.
Util.Pivot now works correctly when expanded from a hyperlink.
The tooltips for null-valued booleans now display correctly in data grids.
The .NET downloader utility now works with default proxies.
DateOnly and TimeOnly types can now be used as primary keys in LINQPad's LINQ-to-SQL implementation.
LINQPad's editor now performs well when #loading large Program-type queries.
Results exported as HTML now include functioning expand/collapse buttons.
Queries called via Util.Run that return short numeric types now serialize correctly.
The lambda translation tab now resets correctly before execution when previously unshown.
A subtle issue whereby LINQPad would sometimes see a framework-specific package dependency as invariant when resolving NuGet package dependency graphs has been fixed.
When a NuGet restoration condition is detected by a background process, the prompt dialog now executes additional steps to ensure that it doesn't disappear behind LINQPad's main window.
LINQPad's built-in EF Core scaffolder now emits numeric precision metadata for decimal types to avoid potential rounding errors.
A bug in Amazon EC2 VM recognition when activating LINQPad has been fixed.
A syntax highlighting bug that would manifest with queries that include explicit using directives has been fixed.
LINQPad's SQLite driver now correctly infers boolean types for tables with no rows.

Only for V.I.P
Warning! You are not allowed to view this text.
  • 11