根据特定的成员值在列表中查找重复项
本文关键字:列表 查找 成员 | 更新日期: 2023-09-27 18:27:43
如何根据特定值在列表中找到重复项,并将重复项分组在一起?
如果我有相同电子邮件地址的项目,我希望它们作为重复项收集,因为我在收集中使用电子邮件地址作为"主键"。并非这些项目中的所有值都相同。
例如:
var numberOfTestcasesWithDuplicates =
Customers.GroupBy(x => x.emailaddress).ToList();
会给我一个重复项目的集合,但我想将重复的项目收集到分组集合中,在那里我可以管理这些项目,并查看哪些项目是重复的?
感谢
也许您只想要具有多个项目的组?
var numberOfTestcasesWithDuplicates = Customers.GroupBy(x => x.emailaddress)
.Where(x => x.Count() > 1)
.ToList();
.Where(p => p.Count() > 1)
将检查组成该组的项目数。
如何根据特定值在列表中找到重复项,并将重复项组合在一起?
对我来说,这听起来像GroupBy
。你已经在问题中的代码中完成了分组,你只需要使用结果。GroupBy
的结果是组序列,其中每个组是一个密钥和共享该密钥的值序列。例如:
foreach (var group in Customers.GroupBy(x => x.emailaddress))
{
Console.WriteLine("Customers with email address {0}", group.Key);
foreach (var customer in group)
{
Console.WriteLine(" {0}", customer.Name); // Or whatever
}
}