如何通过对象的属性从自定义对象列表中删除重复项

时间:2015-05-25 08:50:49

标签: c# linq list object duplicates

我想根据对象的属性删除重复项:

public class MyType
{
    public string _prop1;
    public string _prop2;

    public LocationsClass(string prop1, string prop2)
    {
        _prop1= prop1;
        _prop2= prop2;
    }
}

...

List<MyType> myList;

所以基本上我想从myList中删除所有MyType对象,并在_prop1中使用相同的值。有没有办法做到这一点,可能是LINQ?

2 个答案:

答案 0 :(得分:6)

var distinctItems = myList.GroupBy(x => x.prop1).Select(y => y.First());

答案 1 :(得分:1)

您还可以使用morelinq DistinctBy

distinctItems = myList.DistinctBy(x => x.prop1).ToList();

或具有多个属性:

distinctItems = myList.DistinctBy(x=> new { x.prop1, x.prop2}).ToList();