[英]Get a list of duplicated objects, including all occurrences C#
I have a class MyClass
我有一堂
MyClass
public class MyClass
{
public int ID { set; get; }
public string ITEM1 { set; get; }
public string ITEM2 { set; get; }
}
And a list 和清单
List<MyClass> listMyClass = new List<MyClass>();
with 3 objects 3个物件
{1, "APPLE", "LIME"}
{1, "LIME", "APPLE"}
{2, "ORANGE", "LEMON"}
I would like to exclude non-duplicated objects BUT if there are 2 duplicated object, I want to list them all. 我想排除非重复的对象,但是如果有2个重复的对象,我想将它们全部列出。 So the result list I would like to have
所以我想要的结果列表
{1, "APPLE", "LIME"}
{1, "LIME", "APPLE"}
I try 我尝试
var dupes = .GroupBy(g => g.ID).SelectMany(grp => grp.Skip(1)).ToList();
This only gives me 这只会给我
{1, "APPLE", "LIME"}
Pleas ignore the reason why I have objects with same ID but have different contents. 请不要理会我拥有相同ID但内容不同的对象的原因。 How could I get a full list of duplicated objects?
如何获得重复对象的完整列表?
var dupes = listMyClass.GroupBy(i => i.ID).Where(i => i.Count() > 1).SelectMany(i => i).ToList();
这个怎么样?
var dupes = listMyClass.GroupBy(g => g.ID).SelectMany(grp => grp.Count() <= 1 ? new MyClass[] { } : grp.ToArray()).ToList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.