2010-01-16 10 views
95

Wie schreibe ich diese Abfrage in linq (vb.net)?Linq mit Gruppe durch Zählung

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

Mögliches Duplikat von http://stackoverflow.com/questions/1333265/habing-and-conditional-count-in-linq-query –

Antwort

206

So:

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

Oder mit der Methode Syntax:

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

Danke für die Bereitstellung beider Syntaxformen! : D – Jess

5

Für alle, die dies in vb zu tun (wie ich war, und konnte nichts finden)

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

Ich finde es schwer zu verstehen, warum die 'Group By' nach der 'Select'-Klausel in VB ist. – Arvin