删除项目在列表C#中具有相同的键

时间:2013-04-05 08:33:30

标签: c# list removeall

我有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”),但在我的问题中,在这个列表中,我不知道任何对象之前是否重复。

4 个答案:

答案 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();