.NET 程式設計師的 Playground :LINQPad

Soar、毅發表於2020-05-19

如果想執行一個簡單的 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 兩個版本。如果確實幫助了你,且經濟實力允許,那麼購買一個正版授權也未嘗不可。

 

相關文章