Linq với nhóm bằng cách đếm


Câu trả lời:


284

Như thế này:

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

Hoặc, sử dụng cú pháp phương thức:

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

18
Cảm ơn đã cung cấp cả hai hình thức cú pháp! : D
Jess

Cảm ơn giải pháp này
sudhanshu Pal

6

Đối với bất cứ ai muốn làm điều này trong vb (như tôi đã và không thể tìm thấy bất cứ điều gì)

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

1
Tôi thấy khó hiểu tại sao Group Bysau Selectmệnh đề trong VB.
Arvin

-1

Giải pháp dưới đây có thể giúp bạn.

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()
};

Làm thế nào điều này có liên quan đến câu hỏi?
Gert Arnold
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.