2010-01-16 86 views
95

如何在linq(vb.net)中编写此查询?Linq与组通过计数

select B.Name 
from Company B 
group by B.Name 
having COUNT(1) > 1 
+1

可能的重复http://stackoverflow.com/questions/1333265/having-and-conditional-count-in-linq-query – 2012-08-29 17:31:40

回答

206

像这样:

from c in db.Company 
group c by c.Name into grp 
where grp.Count() > 1 
select grp.Key 

或者使用方法的语法:

Company 
    .GroupBy(c => c.Name) 
    .Where(grp => grp.Count() > 1) 
    .Select(grp => grp.Key); 
+7

感谢您提供这两种形式的语法! :D – Jess 2015-11-17 20:38:55

5

对于任何人要做到这一点在VB(因为我是,但没有找到任何东西)

From c In db.Company 
Select c.Name Group By Name Into Group 
Where Group.Count > 1 
+0

我很难理解为什么'Group By'在VB中的'Select'子句之后。 – Arvin 2017-11-08 03:16:58