2010-01-16 33 views
95

¿cómo escribo esta consulta en linq (vb.net)?Linq con grupo al contar

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

Posible duplicado de http://stackoverflow.com/questions/1333265/having-and-conditional-count-in-linq-query –

Respuesta

206

De esta manera:

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

O, usando la sintaxis del método:

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

¡Gracias por proporcionar ambas formas de sintaxis! : D – Jess

5

para cualquiera que quiera hacer esto en vb (como estaba y no podía encontrar nada)

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

Me resulta difícil entender por qué el 'Group By' es después de la cláusula' Seleccionar' en VB. – Arvin