LINQPad Premium v9.6.6
Download LINQPad v9.5.10 (x64) Premium Edition
The .NET Programmer’s Playground:
Instantly test any C#/F#/VB snippet or program
Query databases in LINQ (or SQL) — SQL/Azure, Oracle, SQLite, Postgres & MySQL
Enjoy rich output formatting, autocompletion with AI and integrated debugging
Script and automate in your favorite .NET language, with all the benefits of a REPL
Interoperate with BenchmarkDotNet, xUnit, Rx, MSAL, Excel and more
Super lightweight — small and fast, with xcopy option
Standard edition free with no expiry
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.
Want to test a variation of your script? Clone your query in a single keystroke!
Experience LINQPad’s rich output formatting, optional debugger and autocompletion, and the magic of dynamic development and instant feedback!
With LINQPad, you can interactively query databases directly in LINQ (as well as SQL). The big win with LINQ is having association properties automatically generated for all relationships (inferred from foreign key constraints), so you can access related rows without joining! LINQPad uses a custom high-performance scaffolding engine behind the scenes, and includes drivers for SQL Server, SQL Azure, Oracle, SQLite, PostgreSQL and MySQL.
When dumped, association properties appear as lazy hyperlinks that can be expanded just by clicking on them. You can walk your entire database interactively!
LINQPad’s Dump method is famous for its capacity to eat almost anything!
Tuned with numerous heuristics, it intelligently walks object graphs for the best possible output. It even turns lazy objects into hyperlinks and asynchronous values into placeholders whose content materializes in the future!
Images and bitmaps render as images and bitmaps, and types from Reactive Extensions and Dataflow fully animate.
Dump any WPF or Windows Forms object and it will actually render.
Call the .Chart extension method to output data as a chart, using LINQPad's inbuilt charting engine.
And when you need a traditional data grid or debugger watch window, it’s there, too.
With its support for advanced C# features such as async / await and unsafe, LINQPad is capable of serious rapid coding work.
Such as writing a neural network from scratch!
Import other queries or .cs files with the #load directive.
Reference project assemblies from your Visual Studio solution, and use LINQPad as an interactive test harness. Or use LINQPad to provide instant entry points into any part of your solution.
Use LINQPad for build scripts and to automate cloud management tasks. LINQPad includes an integrated password manager for securely storing API keys, and a MSAL/OAuth frontend for multifactor authentication that preserves tokens across executions.
Step through your code with a lightweight debugger, and move around quickly with symbol navigation, outlining and bookmarking.
LINQPad is also a great way to learn C#: it comes with all 1300 examples from the book, C# 12 in a Nutshell, as well as interactive samples from Jon Skeet's C# in Depth.
A .NET Swiss Army Knife
Ever needed to benchmark your code? Now you can do so with a single keypress! LINQPad uses the industrial-grade BenchmarkDotNet for accurate results, which it presents via a customizable graphic real-time visualizer. No more writing boilerplate setup code, and no more digging through text-based logs!
Need to write a regular expression? Press Ctrl+Shift+F1 and an interactive RegEx Evaluator will appear! This is actually implemented entirely as a LINQPad query that uses LINQPad's HTML controls. You can make changes to this query, or use it as as template for writing your own interactive queries.
Need to generate Excel files? LINQPad includes a custom high-speed Excel export engine that generates native .xlsx files with AutoFilter and Tables — in a single line of code. There are also options for creating multi-sheet workbooks and you can even populate a spreadsheet cell-by-cell:
LINQPad is Easy to Learn
LINQPad comes with an integrated tutorial/reference, comprising interactive sample queries. Browse through the tree or press Ctrl+F1 to search — you'll find a sample that demonstrates just about every feature and application of LINQPad.
9.6
- You can now interact with AI models that you've configured in LINQPad directly from your scripts. For instance:
Util.AI.Ask ("Explain special relativity").Dump();or to handle the response explicitly:var response = await Util.AI.Ask ("What's the capital of France?").GetResponseAsync (); response.Text.Dump();The API also supports model selection, streaming and chat history. For a complete demo, press Ctrl+Q and search for Runtime AI. - LINQPad now supports .NET's inbuilt source generators. These generate optimized code at compile-time for
- Regular Expressions
- Native function calls
- JSON serialization
[GeneratedRegex(@"\b(\w|[-'])+\b")] private static partial Regex WordCountRegex();
For more examples, press Ctrl+F1 / Command-F1 and search for Source Generators. - Commands to open a folder in Windows Explorer now respect custom extensions.
- There's a new
Util.Markdownmethod to render markdown in the results window:Util.Markdown ("# Heading\n\nThis is a **test**").Dump();You can also use this method to convert markdown to HTML:Util.Markdown ("# Heading\n\nThis is a **test**").Html.Dump(); - For users with low-DPI screens, fonts in the editor now appear sharper when increasing or decreasing the font size. You can also now choose a default font size and font weight in the Settings dialog.
- Autocompletion on filenames now escapes backslashes as necessary.
Bug fixes:
- A bracket-matching bug that could cause the editor to hang with SQL queries
- A performance bug with custom
LINQPad.Controls - A DataGrid bug with the handling of nullable binary-typed database columns
- An OutOfMemoryException when working with large database schemas in the X86 build of LINQPad
- A focusing issue with
Util.ReadLine - A StackOverflowException that could occur with SQL queries with a recursive CTE