Linq กับกลุ่มโดยมีการนับ


คำตอบ:


298

แบบนี้:

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

หรือใช้ไวยากรณ์วิธี:

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

22
ขอขอบคุณที่ให้ไวยากรณ์ทั้งสองรูปแบบ! : D
Jess

ขอบคุณสำหรับการแก้ปัญหานี้
sudhanshu Pal

6

สำหรับใครที่ต้องการทำสิ่งนี้ใน vb (ตามที่ฉันเป็นและไม่พบอะไรเลย)

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

1
ฉันพบว่ามันยากที่จะเข้าใจว่าเหตุใดจึงGroup Byอยู่หลังSelectอนุประโยคใน VB
Arvin

-2

โซลูชันด้านล่างนี้อาจช่วยคุณได้

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

เกี่ยวข้องกับคำถามนี้อย่างไร?
Gert Arnold
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.