十年河東,十年河西,莫欺少年窮。
本節探讨的内容很簡單,就是如果使用GroupBy計數
提供兩種方法:第一:把查詢的資料,轉化為泛型,然後泛型分組計數。
第二:Linq語句直接分組計數
有如下範例:
SQL如下:

View Code
想要的結果為:
橘子:2 蘋果:4 桃子:0 香蕉:3
那麼用LINQ該如何實作呢?
首先建立傳回的資料類型:
我們采用cateId 和 cateName 聯合分組:
LINQ如下:
其實上述的LINQ相信大家都能很快寫出來,但是我要強調的是Count('裡面的參數')
也就是這一句:
加上這句篩選,就是為了防止将桃子統計為 1
這樣調試的結果為:
以上便是第一種方法!
那麼第二種方法也很簡單,思路是:左連接配接查詢資料,然後把查詢的結果轉化為泛型,最後利用泛型分組:
在此直接上代碼了:
MSTS類變更如下:
LINQ查詢變更如下:
調試實時資訊如下:
從調試資訊可以看出:因為桃子沒被引用過,是以桃子對應的content為null
那麼泛型的分組也和linq一樣,都是要篩選這個字段的值
泛型分組如下:
@陳卧龍的部落格