如果想執行一個簡單的 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 兩個版本,如果確實幫助了你,且經濟實力允許,那么購買一個正版授權也未嘗不可,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/10285.html
標籤:其他
