我有一些LINQ代码(不幸的是不能亲自!)从列表对象中获取重复项。但是,原始列表中的重复项是这样的:
Item A
Item A
Item A
Item B
Item B
Item C
Item C
Item C
Item C
etc...
我想做的是扩展LINQ查询以获取所有这些重复实例,而不仅仅是重复对中的第一个实例,或三重奏。
获得此功能的理想查询是什么?
答案 0 :(得分:5)
您可以对属性进行分组,并获取包含多个项目的组。例如:
List<IGrouping<Item>> duplicates =
items.GroupBy(i => i.Name).Where(g => g.Count() > 1).ToList();
现在每个组都包含所有重复项。
答案 1 :(得分:0)