.NET 程序员的 Playground :LINQPad
如果想執(zhí)行一個(gè)簡(jiǎn)單的 C# 語(yǔ)句并獲得運(yùn)行結(jié)果,通常我們需要做幾個(gè)步驟才能達(dá)成:
打開(kāi) Visual Studio 并新建一個(gè)控制臺(tái)項(xiàng)目。
在 Program.cs 中編寫(xiě)代碼并保存。
點(diǎn)擊運(yùn)行按鈕或者 F5 運(yùn)行程序并查看結(jié)果。
通常來(lái)說(shuō)這并不會(huì)產(chǎn)生問(wèn)題。但如果你和筆者一樣為 Visual Studio 安裝了各種插件,那么 Visual Studio 的啟動(dòng)時(shí)間就會(huì)變得很長(zhǎng)。在新建項(xiàng)目時(shí),我們必須為這些臨時(shí)的代碼指定名稱和保存路徑,如果保持默認(rèn)的名字,就很可能在今后忘記建立這些文件的用途。
使用 LINQPad 可以解決上面的問(wèn)題。LINQPad 的軟件包很小只有二十兆左右,啟動(dòng)速度很快。使用時(shí)只需輸入想要執(zhí)行的 C# 語(yǔ)句,并按下 F5 即可:
快捷鍵 F4 可以打開(kāi)“查詢屬性”窗口,在這個(gè)窗口中,你可以引用所有在運(yùn)行時(shí)需要的東西,包括:dll、配置文件、json和文本文件等,這些引用的文件將會(huì)被復(fù)制到輸出目錄。
同時(shí),LINQPad 也支持直接將 NuGet 包引用到查詢中:
也可以將查詢保存為一個(gè)擴(kuò)展名為 .linq 的文件,以便復(fù)用代碼。
語(yǔ)言支持
包括“C# 表達(dá)式(C# Expression)”在內(nèi),LINQPad 一共支持 4 種語(yǔ)言和 10 種查詢類型:
C# Expression
C# Statement(s)
C# Program
VB Expression
VB Statement(s)
VB Program
SQL
ESQL
F# Expression
F# Program
LINQPad 會(huì)根據(jù)我們鍵入的代碼自動(dòng)選擇正確的查詢類型,大部分時(shí)候我們無(wú)需擔(dān)心。
結(jié)果輸出
使用?Console.WriteLine?等方法輸出的控制臺(tái)內(nèi)容會(huì)直接在 Result 標(biāo)簽頁(yè)顯示:
LINQPad 內(nèi)置了名為?Dump?的擴(kuò)展方法用于將對(duì)象的值展示出來(lái)。該方法對(duì) Object 類型進(jìn)行了擴(kuò)展,并提供了多個(gè)重載,讓我們可以對(duì)展示結(jié)果進(jìn)行標(biāo)記:
除了簡(jiǎn)單類型,Dump?方法對(duì)復(fù)雜類型的支持也值得稱贊。我們完全可以僅依賴?Dump?方法就能了解到某個(gè)對(duì)象的全部取值:
甚至可以直接將一個(gè) WinForm 或 WPF 控件?Dump?出來(lái),且支持交互:
查詢結(jié)果也可以進(jìn)行導(dǎo)出,目前支持:Word、Excel 和 HTML 三種格式。
查詢編輯器的左下方是一個(gè)狀態(tài)指示,在這里會(huì)展示出查詢的運(yùn)行狀態(tài)和執(zhí)行時(shí)間。這樣,當(dāng)我們需要簡(jiǎn)略測(cè)試一個(gè)算法的效率時(shí),無(wú)需再編寫(xiě)額外的監(jiān)測(cè)代碼。
數(shù)據(jù)庫(kù)集成
LINQPad 可以通過(guò) Entity Framework 或者 Entity framework Core 及對(duì)應(yīng)的數(shù)據(jù)庫(kù)驅(qū)動(dòng)鏈接至數(shù)據(jù)庫(kù),比如常見(jiàn)的 SQL Server , MySQL , Oracle 甚至 SQLite 。可以通過(guò)程序右上角的“Add connection”完成鏈接工作:
在配置好數(shù)據(jù)庫(kù)鏈接后,我們就可以選定這個(gè)鏈接,編寫(xiě) C# 代碼來(lái)訪問(wèn)數(shù)據(jù)庫(kù):
除了可以通過(guò)執(zhí)行?Dump?方法看到運(yùn)行結(jié)果以外,也可以切換至?SQL?標(biāo)簽頁(yè)查看執(zhí)行的 SQL 語(yǔ)句:
如果需要直接在 LINQPad 中執(zhí)行 SQL 語(yǔ)句,只需將語(yǔ)言(Language)設(shè)置為 SQL 即可:
圖表支持
除了將結(jié)果集以表格的形式呈現(xiàn),LINQPad 也支持直接根據(jù)結(jié)果集生成統(tǒng)計(jì)圖。柱狀圖、折線圖、餅狀圖等均不再話下,且無(wú)需很多的額外代碼:
LINQPad 的 Visual Studio 擴(kuò)展 LINQBridgeVs?
LINQBridgeVs 把 LINQPad 強(qiáng)大的 Dump 能力鏈接到了 Visual Studio 上,支持 2012 到 2019 版本:
了解更多
本文涵蓋了 LINQPad 的大部分常用操作。作為一個(gè)開(kāi)發(fā)者工具,LINQPad 的上手難度并不大。你可以在 https://www.linqpad.net/Resources.aspx 上找到更多關(guān)于 LINQPad 的資源。
LINQPad 本身也攜帶了大量的示例代碼,切換左下角的選項(xiàng)卡到 “ Samples ”標(biāo)簽即可看到:
總結(jié)
經(jīng)過(guò)幾個(gè)月的使用,LINQPad 確實(shí)成為了筆者工作中不可或缺的工具。現(xiàn)在,LINQPad 已經(jīng)被固定在了任務(wù)欄,除了運(yùn)行一些測(cè)試性的代碼,它也被用來(lái)作為數(shù)據(jù)導(dǎo)出工具和工具箱。筆者最喜歡的是其內(nèi)置的圖表生成功能,當(dāng)枯燥的數(shù)據(jù)以圖表的形式展示出來(lái)時(shí),除了驚艷,就是說(shuō)不出來(lái)的滿足。
LINQPad 的銷售策略是買(mǎi)斷制,一次購(gòu)買(mǎi)終身有效且可以在最多三臺(tái)電腦上同時(shí)安裝,高級(jí)版單用戶的售價(jià)為 700 元人民幣左右,同時(shí)支持 LINQPad 5 和 LINQPad 6 兩個(gè)版本。如果確實(shí)幫助了你,且經(jīng)濟(jì)實(shí)力允許,那么購(gòu)買(mǎi)一個(gè)正版授權(quán)也未嘗不可。
總結(jié)
以上是生活随笔為你收集整理的.NET 程序员的 Playground :LINQPad的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Sql Server之旅——第一站 那些
- 下一篇: Sql Server之旅——第三站 解惑