LINQ 查询 Return 独占重复
LINQ Query To Return Duplicates Exclusively
我正在处理这个 LINQ 查询。我想要结果列表 return 一个仅包含重复项的记录列表,该列表基于 EMailAddress1 字段并按 EMailAddress1 字段分组。
例如:
- 电子邮件地址1@gmail.com
- 电子邮件地址1@gmail.com
- 电子邮件地址2@gmail.com
- 电子邮件地址2@gmail.com
- 电子邮件地址2@gmail.com
- 电子邮件地址3@gmail.com
- 电子邮件地址3@gmail.com
等等
对此有何建议?谢谢。
var contacts = (from c in xrm.ContactSet
where c.StateCode != 1
orderby c.EMailAddress1, c.CreatedOn
descending select new {
c.FirstName,
c.LastName,
c.EMailAddress1,
c.ContactId,
c.CreatedOn }).ToList();
根据您之前的查询:
var duplicatedEmails = (from c in contacts
group c by c.EMailAddress1 into g
where g.Count() > 1
select g.Key).ToList();
var duplicatedContacts = contacts.Where(c => duplicatedEmails.Contains(c.EMailAddress1));
我正在处理这个 LINQ 查询。我想要结果列表 return 一个仅包含重复项的记录列表,该列表基于 EMailAddress1 字段并按 EMailAddress1 字段分组。
例如:
- 电子邮件地址1@gmail.com
- 电子邮件地址1@gmail.com
- 电子邮件地址2@gmail.com
- 电子邮件地址2@gmail.com
- 电子邮件地址2@gmail.com
- 电子邮件地址3@gmail.com
- 电子邮件地址3@gmail.com
等等
对此有何建议?谢谢。
var contacts = (from c in xrm.ContactSet
where c.StateCode != 1
orderby c.EMailAddress1, c.CreatedOn
descending select new {
c.FirstName,
c.LastName,
c.EMailAddress1,
c.ContactId,
c.CreatedOn }).ToList();
根据您之前的查询:
var duplicatedEmails = (from c in contacts
group c by c.EMailAddress1 into g
where g.Count() > 1
select g.Key).ToList();
var duplicatedContacts = contacts.Where(c => duplicatedEmails.Contains(c.EMailAddress1));