return 计数和字段的 Linq 语句

Linq statement to return count and fields

我需要能够 return 来自 table 的行,其中存在特定数据列的重复项。

table 包含许多列,但我只需要 return 姓氏、名字、电子邮件和电子邮件数量(即如果有多个记录具有相同的电子邮件地址。)

我试过以下 return 正确的记录:

var _i = (from a in _db.WebPersonalInfos group a by a.Email into g where g.Count() > 1 orderby g.Key select g).ToList();

但是,我需要将其修改为仅 return 姓氏、名字、电子邮件和计数(电子邮件)。

即"Smith"、"Joe"、"jsmith@gmail.com"、4

我不确定如何准确地完成这个。

假设具有相同电子邮件地址的记录具有相同的 first/last 名称,您可以这样做:

var _i = (from a in _db.WebPersonalInfos 
          group a by a.Email into g 
          where g.Count() > 1 
          orderby g.Key 
          select new {
             LastName = g.First().LastName, 
             FirstName = g.First().FirstName, 
             Email = g.Key, 
             Count = g.Count()
          })
         .ToList();