Linq z grupą poprzez liczenie

Odpowiedzi:

285

Lubię to:

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

Lub używając składni metody:

Company
    .GroupBy(c => c.Name)
    .Where(grp => grp.Count() > 1)
    .Select(grp => grp.Key);
Thomas Levesque
źródło
18
Dziękujemy za udostępnienie obu form składni! : D
Jess
Dzięki za to rozwiązanie
sudhanshu Pal
6

Dla każdego, kto chce to zrobić w czasowniku (tak jak byłem i nie mogłem nic znaleźć)

From c In db.Company 
Select c.Name Group By Name Into Group 
Where Group.Count > 1
Michael Andrews
źródło
1
Trudno mi zrozumieć, dlaczego Group Byjest po Selectklauzuli w VB.
Arvin
-1

Poniższe rozwiązanie może ci pomóc.

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
źródło
Jak to się ma do pytania?
Gert Arnold