2014年7月7日 星期一

使用 .NET Fiddle 來練習 LINQ 語法操作

在介紹 LINQ 的時候,我一定會推薦大家可以使用 LINQPad 來做為練習的工具,我也有多篇文章是在說明如何使用 LINQPad,

LINQPad - 好用到爆炸、.NET開發人員必備的好用工具
Oracle ODAC 11.2 Release 4 (11.2.0.3.0) - Includes support for Entity Framework and LINQ
LINQPad + Oracle ODAC for Entity Framework
看看 LINQPad ( v2.41.2 / v4.41.2 ) 更新了什麼
LINQPad v4.42.05 Beta 介紹
LINQPad - IQ Driver - for MySQL, SQLite, Oracle
LINQ 與 Access - 使用 LINQPad

LINQPad 有免費版也有付費版本,免費版就已經相當好用,而且有絕大部分的主要功能,所以一直推薦大家要練習或測試 LINQ 操作的時候可以使用 LINQPad,但是對於 LINQ 入門新手來說,基本的 LINQ 方法不是很熟悉,更何況是比較進階一些的操作,而 LINQPad 免費版與付費版最大的一個差異就是「Intellisense」,對於新手來說,有「Intellisense」總是比較方便一些,所以我一直鼓勵 LINQ 入門新手使用 LINQPad 來練習,但是沒有 Intellisense 的情況下,新手用個幾次之後還是寧願開啟 Visual Studio 來練習。

前一陣子開始會使用線上工具「.NET Fiddle」,部落格裡也有文章用了 .NET Fiddle 將程式實作與結果即時顯示給大家,而且在 .NET Fiddle 裡面編輯程式的時候還會顯示方法提示,於是這就讓我想到,.NET Fiddle 也是個相當適合 LINQ 入門新手用來練習 LINQ 操作的一個好工具。

 


.NET Fiddle

https://dotnetfiddle.net/

.NET Fiddle 是從 JSFiddle 所啟發的,所以在介面上有一些雷同,不過 .NET Fiddle 並不只有前端的處理而已,

image

提供三種語言來編輯程式

image

三種專案類別可以選擇,還可以用來編輯 ASP.NET MVC 專案,

image

image

其他功能就讓各位自己去摸索,其實還蠻容易了解與簡單上手,所以建議各位去註冊一組帳號,好處就是可以保存自己在 .NET Fiddle 所編輯的專案與程式。

 

操作使用

一開始進入 .NET Fiddle 的專案類別是 Console,練習 LINQ 操作使用 Console 就可以了,接著就來看看要怎麼在裡面操作 LINQ,

首先要先在裡面加入兩個 Namespace,「System.Collection.Generic」「System.Linq

image

先來個簡單的操作,我分別 LINQ 的 Query Syntax 與 Method Syntax 操作同樣的條件過濾,當我輸入關鍵字的時候,即時出現方法提示,是不是很方便,對於剛接觸 LINQ 的入門新手來說,有了方法提示就方便太多了,

image

而當我在 Where 方法裡要輸入 predicate 時,一樣也有提示出現,

image

最後完成的程式

image

在 .NET Fiddle 裡可以選擇是否自動執行程式,如果選擇 Auto Run,那麼寫完一段程式,假如沒有錯誤就會馬上執行,然後在下方顯示執行結果,如果不要 Auto Run 的話,在寫完程式之後,我們就要自行去按下 Run 的 button,才會顯示執行結果,

image

執行結果

image

 

如果編輯時有錯誤就會即時顯示,移到錯誤圖示上還會有錯誤說明,

image

是不是很方便好用呀。

 

再來個進階一點的操作,上面那個是單純的字串陣列,接著來用個物件集合的操作,

image

在編輯程式的時候,也會即時提示物件類別的成員,

image

提示說明

image

除了顯示節執行結果之外,右下方還有顯示此次執行所耗費的編譯、執行時間、使用記憶體、CPU 時間

image

 

最後還可以將你在 .NET Fiddle 上面所寫的程式給分享出來,甚至是提供語法讓我們可以貼到部落格文章裡,

image

第一個範例

第二個範例

 


剛入門學習 LINQ 的朋友,如果還不習慣使用 LINQPad 而且短時間沒有付費購買的打算,在有網路連線的情況下,可以使用 .NET Fiddle 來做為練習 LINQ 語法操作練習的工具。

 

延伸閱讀

.NET Fiddle Chrome Extension with MSDN Sample Code

.NET Fiddle Chrome Ext with MSDN LINQ Sample

 

以上

沒有留言:

張貼留言

提醒

千萬不要使用 Google Talk (Hangouts) 或 Facebook 及時通訊與我聯繫、提問,因為會掉訊息甚至我是過了好幾天之後才發現到你曾經傳給我訊息過,請多多使用「詢問與建議」(在左邊,就在左邊),另外比較深入的問題討論,或是有牽涉到你實作程式碼的內容,不適合在留言板裡留言討論,請務必使用「詢問與建議」功能(可以夾帶檔案),謝謝。