十年河东,十年河西,莫欺少年穷。
本节探讨的内容很简单,就是如果使用GroupBy计数
提供两种方法:第一:把查询的数据,转化为泛型,然后泛型分组计数。
第二:Linq语句直接分组计数
有如下范例:
SQL如下:

View Code
想要的结果为:
橘子:2 苹果:4 桃子:0 香蕉:3
那么用LINQ该如何实现呢?
首先新建返回的数据类型:
我们采用cateId 和 cateName 联合分组:
LINQ如下:
其实上述的LINQ相信大家都能很快写出来,但是我要强调的是Count('里面的参数')
也就是这一句:
加上这句筛选,就是为了防止将桃子统计为 1
这样调试的结果为:
以上便是第一种方法!
那么第二种方法也很简单,思路是:左连接查询数据,然后把查询的结果转化为泛型,最后利用泛型分组:
在此直接上代码了:
MSTS类变更如下:
LINQ查询变更如下:
调试实时信息如下:
从调试信息可以看出:因为桃子没被引用过,所以桃子对应的content为null
那么泛型的分组也和linq一样,都是要筛选这个字段的值
泛型分组如下:
@陈卧龙的博客