获取复制对象的列表,包括所有引用C#

获取复制对象的列表,包括所有引用C#,c#,linq,C#,Linq,我有一个班级MyClass public class MyClass { public int ID { set; get; } public string ITEM1 { set; get; } public string ITEM2 { set; get; } } 和一份清单 List<MyClass> listMyClass = new List<MyClass>(); 我想排除非重复对象,但如果有2个重复对象,我想将它们全部列出。所以我

我有一个班级
MyClass

public class MyClass
{
    public int ID { set; get; }
    public string ITEM1 { set; get; }
    public string ITEM2 { set; get; }
}
和一份清单

List<MyClass> listMyClass = new List<MyClass>();
我想排除非重复对象,但如果有2个重复对象,我想将它们全部列出。所以我想要的结果列表

  {1, "APPLE", "LIME"}
  {1, "LIME", "APPLE"}
我试着

这只会让我

  {1, "APPLE", "LIME"}
请忽略我有相同ID但内容不同的对象的原因。我怎样才能得到复制对象的完整列表?

这个怎么样

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();
var dupes=listMyClass.GroupBy(g=>g.ID)。SelectMany(grp=>grp.Count()这个怎么样

var dupes = listMyClass.GroupBy(g => g.ID).SelectMany(grp => grp.Count() <= 1 ? new MyClass[] { } : grp.ToArray()).ToList();

var dupes=listMyClass.GroupBy(g=>g.ID)。SelectMany(grp=>grp.Count()如果有重复的组,我想你不想跳过1。你想按ID分组,然后循环分组并检查组计数是否大于1。@Broom,如果我没有跳过,那么我有一个所有的列表,包括不重复的。是的,但它也跳过重复组的第一个副本。我想你不想跳过ip 1如果有重复项,则您要按ID分组,然后循环分组并检查组计数是否大于1。@Broom,如果我没有Skip,则我有所有内容的列表,包括非重复项。是的,但它也会跳过重复组的第一个副本SEH、nvm、Ringil's is cleanereh、nvm、Ringil's cleaneR
var dupes = listMyClass.GroupBy(g => g.ID).SelectMany(grp => grp.Count() <= 1 ? new MyClass[] { } : grp.ToArray()).ToList();