获取复制对象的列表,包括所有引用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();