【问题标题】:How to remove duplicates from a list of custom objects, by a property of the object [duplicate]如何通过对象的属性从自定义对象列表中删除重复项[重复]
【发布时间】:2015-08-06 16:53:00
【问题描述】:

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

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?

【问题讨论】:

标签: c# linq list object duplicates


【解决方案1】:
var distinctItems = myList.GroupBy(x => x.prop1).Select(y => y.First());

【讨论】:

  • 对于较小的集合,可以使用 GroupBy。在其他情况下,它应该与一粒盐一起使用,它会产生时间复杂性并可能影响性能。
【解决方案2】:

你也可以使用morelinqDistinctBy

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

或具有多个属性:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 2017-06-23
    相关资源
    最近更新 更多