Lambda独特选择

这个问题在这里已经有了答案:

  • LINQ对特定属性的Distinct()17的答案

  • 如果您不在类中重写EqualsGetHashCode ,或者提供自定义的相等比较器,则Distinct方法使用默认的相等比较器作为类型。并且它通过引用来比较引用类型。 不是通过属性值。 如果你不希望这种行为覆盖你的类中的相关方法,或者如果你不能改变类实现一个类型的IEqualityComparer并传递给Distinct

    var ResourceTypeNameList = Resources
       .Select(r => new bl_SelectBox{ text=r.ResourceTypeName, value=r.resourceTypeID })
       .Distinct(new MyEqualityComparer());
    

    另一个快速解决方案是使用GroupBy

    var ResourceTypeNameList = Resources
      .Select(r => new bl_SelectBox{ text=r.ResourceTypeName, value=r.resourceTypeID })
      .GroupBy(x => x.SomeProperty)
      .Select(x => x.First());
    
    链接地址: http://www.djcxy.com/p/51291.html

    上一篇: Lambda Distinct Select

    下一篇: Tkinter button command activates upon running program?