.NET 程序员的 Playground :LINQPad
如果想执行一个简单的 C# 语句并获得运行结果,通常我们需要做几个步骤才能达成:
- 打开 Visual Studio 并新建一个控制台项目。
- 在 Program.cs 中编写代码并保存。
- 点击运行按钮或者 F5 运行程序并查看结果。
通常来说这并不会产生问题。但如果你和笔者一样为 Visual Studio 安装了各种插件,那么 Visual Studio 的启动时间就会变得很长。在新建项目时,我们必须为这些临时的代码指定名称和保存路径,如果保持默认的名字,就很可能在今后忘记建立这些文件的用途。
使用 LINQPad 可以解决上面的问题。LINQPad 的软件包很小只有二十兆左右,启动速度很快。使用时只需输入想要执行的 C# 语句,并按下 F5 即可:

快捷键 F4 可以打开“查询属性”窗口,在这个窗口中,你可以引用所有在运行时需要的东西,包括:dll、配置文件、json和文本文件等,这些引用的文件将会被复制到输出目录。

同时,LINQPad 也支持直接将 NuGet 包引用到查询中:

也可以将查询保存为一个扩展名为 .linq 的文件,以便复用代码。
语言支持
包括“C# 表达式(C# Expression)”在内,LINQPad 一共支持 4 种语言和 10 种查询类型:
- C# Expression
- C# Statement(s)
- C# Program
- VB Expression
- VB Statement(s)
- VB Program
- SQL
- ESQL
- F# Expression
- F# Program
LINQPad 会根据我们键入的代码自动选择正确的查询类型,大部分时候我们无需担心。
结果输出
使用 Console.WriteLine 等方法输出的控制台内容会直接在 Result 标签页显示:

LINQPad 内置了名为 Dump 的扩展方法用于将对象的值展示出来。该方法对 Object 类型进行了扩展,并提供了多个重载,让我们可以对展示结果进行标记:

除了简单类型,Dump 方法对复杂类型的支持也值得称赞。我们完全可以仅依赖 Dump 方法就能了解到某个对象的全部取值:

甚至可以直接将一个 WinForm 或 WPF 控件 Dump 出来,且支持交互:

查询结果也可以进行导出,目前支持:Word、Excel 和 HTML 三种格式。
查询编辑器的左下方是一个状态指示,在这里会展示出查询的运行状态和执行时间。这样,当我们需要简略测试一个算法的效率时,无需再编写额外的监测代码。
数据库集成
LINQPad 可以通过 Entity Framework 或者 Entity framework Core 及对应的数据库驱动链接至数据库,比如常见的 SQL Server , MySQL , Oracle 甚至 SQLite 。可以通过程序右上角的“Add connection”完成链接工作:

在配置好数据库链接后,我们就可以选定这个链接,编写 C# 代码来访问数据库:

除了可以通过执行 Dump 方法看到运行结果以外,也可以切换至 SQL 标签页查看执行的 SQL 语句:

如果需要直接在 LINQPad 中执行 SQL 语句,只需将语言(Language)设置为 SQL 即可:

图表支持
除了将结果集以表格的形式呈现,LINQPad 也支持直接根据结果集生成统计图。柱状图、折线图、饼状图等均不再话下,且无需很多的额外代码:

LINQPad 的 Visual Studio 扩展 LINQBridgeVs
LINQBridgeVs 把 LINQPad 强大的 Dump 能力链接到了 Visual Studio 上,支持 2012 到 2019 版本:

了解更多
本文涵盖了 LINQPad 的大部分常用操作。作为一个开发者工具,LINQPad 的上手难度并不大。你可以在 https://www.linqpad.net/Resources.aspx 上找到更多关于 LINQPad 的资源。
LINQPad 本身也携带了大量的示例代码,切换左下角的选项卡到 “ Samples ”标签即可看到:

总结
经过几个月的使用,LINQPad 确实成为了笔者工作中不可或缺的工具。现在,LINQPad 已经被固定在了任务栏,除了运行一些测试性的代码,它也被用来作为数据导出工具和工具箱。笔者最喜欢的是其内置的图表生成功能,当枯燥的数据以图表的形式展示出来时,除了惊艳,就是说不出来的满足。
LINQPad 的销售策略是买断制,一次购买终身有效且可以在最多三台电脑上同时安装,高级版单用户的售价为 700 元人民币左右,同时支持 LINQPad 5 和 LINQPad 6 两个版本。如果确实帮助了你,且经济实力允许,那么购买一个正版授权也未尝不可。
.NET 程序员的 Playground :LINQPad的更多相关文章
- 转职成为TypeScript程序员的参考手册
写在前面 作者并没有任何可以作为背书的履历来证明自己写作这份手册的分量. 其内容大都来自于TypeScript官方资料或者搜索引擎获得,期间掺杂少量作者的私见,并会标明. 大部分内容来自于http:/ ...
- 【转】.NET程序员提高效率的70多个开发工具
原文:.NET程序员提高效率的70多个开发工具 工欲善其事,必先利其器,没有好的工具,怎么能高效的开发出高质量的代码呢?本文为各ASP.NET 开发者介绍一些高效实用的工具,涉及SQL 管理,VS插件 ...
- 「编程羽录」上线,程序员必备的这些技能你能get到嘛?
大家好,我是小羽. 好久不见,给大家带来个好消息,小羽的全新专题「编程羽录」系列正式上新,主要是介绍一些关于面试题和经验总结的文章. 会为大家提供一些技术栈之外,程序员还需要的其他方面硬核知识,做到全 ...
- JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议
软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...
- Code Review 程序员的寄望与哀伤
一个程序员,他写完了代码,在测试环境通过了测试,然后他把它发布到了线上生产环境,但很快就发现在生产环境上出了问题,有潜在的 bug. 事后分析,是生产环境的一些微妙差异,使得这种 bug 场景在线下测 ...
- 传播正能量——做一个快乐的程序员
引子 今天在博客园看到施瓦小辛格的文章我们搞开发的为什么会感觉到累,顿时有感而发.自己本来不擅长写文章,更不擅长写这种非技术性的文章,但是在思绪喷薄之际,还是止不住有很多话要说.针对从客观上说&quo ...
- SQL Server 致程序员(容易忽略的错误)
标签:SQL SERVER/MSSQL/DBA/T-SQL好习惯/数据库/需要注意的地方/程序员/容易犯的错误/遇到的问题 概述 因为每天需要审核程序员发布的SQL语句,所以收集了一些程序员的一些常见 ...
- 就这么漂来漂去---一个毕业三个月的java程序员的裸辞风波
注:这并不是一篇技术文章,而是记录了我这几个月经历的入职,裸辞,找工作的心路历程,简单介绍一个博主的情况,我是16年毕业生,校招进了一家北京的公司,java开发,和很多年轻人一样,干了一段时间,我发现 ...
- 【定有惊喜】android程序员如何做自己的API接口?php与android的良好交互(附环境搭建),让前端数据动起来~
一.写在前面 web开发有前端和后端之分,其实android还是有前端和后端之分.android开发就相当于手机app的前端,一般都是php+android或者jsp+android开发.androi ...
随机推荐
- Redis开发运维的陷阱及避坑指南
原文首发于博客园,作者:后青春期的Keats:地址:https://www.cnblogs.com/keatsCoder/ 转载请注明,谢谢! Linux 配置优化 我们在使用 Redis 过程中,可 ...
- python安装pil库,操作流程以及安装中出现的问题。
0.用管理员方式打开cmd窗口. 1.跳转到python对应目录 比我: ***或者直接在该路径下输入cmd直接跳转.**** 例如: 直接回车搞定!! 2.输入 pip install pillow ...
- JavaScript之浅谈内存空间
JavaScript之浅谈内存空间 JavaScipt 内存自动回收机制 在JavaScript中,最独特的一个特点就是拥有自动的垃圾回收机制(周期性执行),这也就意味者,前端开发人员能够专注于业余, ...
- 网络传输 socket
一.Socket语法及相关 前言:osi七层模型: 第七层:应用层. 各种应用程序协议,如HTTP,FTP,SMTP,POP3. 第六层:表示层. 信息的语法语义以及它们的关联,如加密 ...
- 《树莓派学习指南(基于Linux)》——本章小结
本节书摘来自异步社区<树莓派学习指南(基于Linux)>一书中的第二章的本章小结,作者[英]Peter Membrey ,[澳]David Hows ,译者 张志博,孙峻文,更多章节内容可 ...
- 如何在 Amazon AWS 上设置一台 Linux 服务器
摘要: AWS(Amazon Web Services)是全球领先的云服务器提供商之一.你可以使用 AWS 平台在一分钟内设置完服务器.在 AWS 上,你可以微调服务器的许多技术细节,如 CPU 数量 ...
- Aurora: 来自 Amazon 的高性能的企业级关系数据库,兼容 MySQL
近日,在美国召开的AWS re:Invent云计算大会上,Amazon高级副总裁安迪·杰西发布了企业级关系数据库Aurora.Aurora是一个面向Amazon RDS(关系数据库服务).兼容MySQ ...
- PHP的闭包和匿名函数
闭包函数是创建时,封装周围状态的函数,而匿名函数是没有名称的函数,匿名函数可以被赋值给变量,也就是所谓的函数式编程,也可以传递参数,经常作为回调函数.(理论上讲:匿名函数和闭包不算是一个概念,php却 ...
- 如何在Vue项目中优雅的使用sass
开始之前,请先确保有一个基于webpack模板的项目(vue-cli脚手架一键安装~) 1.打开项目终端,安装sass的依赖包 npm install --save-dev sass-loader / ...
- 【K8S】基于单Master节点安装K8S集群
写在前面 最近在研究K8S,今天就输出部分研究成果吧,后续也会持续更新. 集群规划 IP 主机名 节点 操作系统版本 192.168.175.101 binghe101 Master CentOS 8 ...