我有List<Object>
n Objects
。
在n对象中有一些对象具有相同的Id
。
示例List<T> = {t1, t2, t3, t4, t5....,t10}.
假设:
t1.Id = t5.id
所以我想从t5
删除List
。
谁能帮助我。
在这个问题中:using LINQ to remove objects within a List你知道对象重复(例如:“bob”),但在我的问题中,在这个列表中,我不知道任何对象之前是否重复。
答案 0 :(得分:7)
仅使用LINQ to Objects:
source = source.GroupBy(t => t.id).Select(g => g.First()).ToList();
答案 1 :(得分:3)
您可以使用moreLinq(从NuGet获取)扩展程序DistinctBy
var result = list.DistinctBy(x => x.Id).ToList();
答案 2 :(得分:0)
试试这个:
list.RemoveAll(input => list.Count(i => i.Id == input.Id) > 1);
答案 3 :(得分:-1)
var res = items.GroupBy(item => item.Id).Select(item2 => item2.First()).ToList();