Linq avec groupe en comptant

137

comment écrire cette requête dans linq (vb.net)?

 select B.Name
 from Company B
 group by B.Name
 having COUNT(1) > 1
Fernando
la source
1
Copie

Réponses:

285

Comme ça:

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

Ou, en utilisant la syntaxe de la méthode:

Company
    .GroupBy(c => c.Name)
    .Where(grp => grp.Count() > 1)
    .Select(grp => grp.Key);
Thomas Levesque
la source
18
Merci de fournir les deux formes de syntaxe! : D
Jess
Merci pour cette solution
sudhanshu Pal
6

Pour tous ceux qui cherchent à faire cela en vb (comme j'étais et je n'ai rien trouvé)

From c In db.Company 
Select c.Name Group By Name Into Group 
Where Group.Count > 1
Michael Andrews
la source
1
J'ai du mal à comprendre pourquoi Group Byla Selectclause est après la clause de VB.
Arvin
-1

La solution ci-dessous peut vous aider.

var unmanagedDownloadcountwithfilter = from count in unmanagedDownloadCount.Where(d =>d.downloaddate >= startDate && d.downloaddate <= endDate)
group count by count.unmanagedassetregistryid into grouped
where grouped.Count() > request.Download
select new
{
   UnmanagedAssetRegistryID = grouped.Key,
   Count = grouped.Count()
};
sudhanshu Pal
la source
Comment cela est-il lié à la question?
Gert Arnold le