VS2008裡面有個神奇的東西,稱之為LINQ,可以透過相同的語法方式來處理各式各樣的資料(SQL,XML,Object,...),小喵此次初體驗感受一下這個東西,真的很好用,初體驗來做個簡單的測試,請看小喵娓娓道來
VS2008裡面有個神奇的東西,稱之為LINQ,可以透過相同的語法方式來處理各式各樣的資料(SQL,XML,Object,...),小喵此次初體驗感受一下這個東西,真的很好用,初體驗來做個簡單的測試,請看小喵娓娓道來
先來看一張LINQ的架構圖(資料來源:曹祖聖老師在TechEd2007的簡報)
要看完整的請點選上面的圖檔,從這張圖來看LINQ可以用來取得相當多的資料,而只要資料能夠用程Object的形式,就能夠透過LINQ來存取
接著就開始這次的初體驗
先說明一下小喵要做的:小喵弄個座位表格,分別有--SeatId(座位代號),SeatName(座位名稱)
然後產生測試資料200個座位資料,SeatName(座位名稱)用亂數產生a-z的字母加上SeatId當作是座位名稱,最後用個介面來測試使用LINQ篩選資料(找字頭相同的)
這樣的題目以前小喵在ASP都是用二維陣列來做,在.NET裡面則是可以用物件的方式取代二為陣列
先建立座位的物件如下:
接著設計畫面如下
產生的資料放在GridView1,篩選後的資料放在GridView2
接著撰寫產生資料的部分
然後就是我們的重點來了,在這些資料中,想要找SeatName(座位名稱)a開頭的資料,以前小喵可能會用個迴圈逐筆查,但是有了LINQ,就可以寫成以下這樣
各位可以發現,用這樣超短的程式碼就能夠做到篩選。真是太好了
熟悉T-SQL的朋友,您接著就可以想像以前T-SQL裡面的Grou By,Distinct,Order By等等都可以再物件裡面玩,甚至可以透過JOIN,把不同的物件資料作關聯之後來取資料。真是神奇啊。
這次的初體驗只是約略的感受一下LINQ的威力,此次的例子只是兩個欄位,一個條件的篩選,各位可以試想一下,如果應用在很多欄位,並且結合其他的資料(LINQ可以使用JOIN)並且使用多重條件的篩選,那麼可以節省多少的程式碼就能夠達到相同的目的。未來有其他的測試再與大家分享。
^_^
以下是簽名:
- 歡迎轉貼本站的文章,不過請在貼文主旨上加上【轉貼】,並在文章中附上本篇的超連結與站名【topcat姍舞之間的極度凝聚】,感恩大家的配合。
- 小喵大部分的文章會以小喵熟悉的語言VB.NET撰寫,如果您需要C#的Code,也許您可以試著用線上的工具進行轉換,這裡提供幾個參考
Microsoft MVP Visual Studio and Development Technologies (2005~2019/6) | topcat Blog:http://www.dotblogs.com.tw/topcat |