从List <T>对象获取所有重复项?

Gur*_*epS 0 .net c# linq

我有一些LINQ代码(unfortunatley不要手工!)从列表对象中获取重复项.但是,原始列表中的重复项是这样的:

Item A
Item A
Item A
Item B
Item B
Item C
Item C
Item C
Item C

etc...
Run Code Online (Sandbox Code Playgroud)

我想做的是扩展LINQ查询以获取所有这些重复实例,而不仅仅是重复对中的第一个实例,或三重奏.

什么是理想的查询来获得这个?

Guf*_*ffa 5

您可以对该属性进行分组,并获取具有多个项目的组.例:

List<IGrouping<Item>> duplicates =
  items.GroupBy(i => i.Name).Where(g => g.Count() > 1).ToList();
Run Code Online (Sandbox Code Playgroud)

现在每个组都包含所有重复项.