2010-01-16 13 views
95

come scrivere questa query in linq (vb.net)?Linq con gruppo avendo il conteggio

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

Possibile duplicato di http://stackoverflow.com/questions/1333265/having-and-condizional-count-in-linq-query –

risposta

206

Ti piace questa:

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

Oppure, utilizzando il metodo sintassi:

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

Grazie per aver fornito entrambe le forme di sintassi! : D – Jess

5

per chi cerca di fare questo in VB (come mi è stato e non poteva trovare nulla)

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

Trovo difficile capire perché 'Group By' è dopo la clausola' Select' in VB. – Arvin