-5

我有一个List<Object>n Objects。在 n 个对象中,它们有一些相同的对象Id。例子List<T> = {t1, t2, t3, t4, t5....,t10}.

假如说:

t1.Id = t5.id

所以我想从中t5删除List

谁能帮帮我。

在这个问题中: 使用 LINQ 删除列表中的对象,您知道对象重复(例如:“bob”),但在我的问题中,在这个列表中,我不知道之前有任何对象重复。

4

4 回答 4

8

仅使用 LINQ to Objects:

source = source.GroupBy(t => t.id).Select(g => g.First()).ToList();
于 2013-04-05T08:35:47.563 回答
5

您可以使用moreLinq(从 NuGet 获取)扩展DistinctBy

var result = list.DistinctBy(x => x.Id).ToList();
于 2013-04-05T08:36:07.903 回答
0

试试这个:

list.RemoveAll(input => list.Count(i => i.Id == input.Id) > 1);
于 2013-04-05T08:36:39.647 回答
0
var res = items.GroupBy(item => item.Id).Select(item2 => item2.First()).ToList();
于 2013-04-05T08:38:46.193 回答