为了账号安全,请及时绑定邮箱和手机立即绑定

List Distinct()结果返回不是预期结果

List Distinct()结果返回不是预期结果

交互式爱情 2018-12-06 12:39:44
这是我用来测试的代码,T_ZJ_PostTouch还有其他字段 List<T_ZJ_PostTouch> list = new List<T_ZJ_PostTouch> { new T_ZJ_PostTouch{OrgCode="1"}, new T_ZJ_PostTouch{OrgCode="1"}, new T_ZJ_PostTouch{OrgCode="2"}, new T_ZJ_PostTouch{OrgCode="2"}, };   int count = list.Distinct().Count();//结果是4 int count1 = list.Distinct(new OrgCodeComparer()).Count();//结果是2   public class OrgCodeComparer : IEqualityComparer<T_ZJ_PostTouch> { public bool Equals(T_ZJ_PostTouch x, T_ZJ_PostTouch y) { if (x == null) return y == null; return x.OrgCode == y.OrgCode; } public int GetHashCode(T_ZJ_PostTouch obj) { if (obj == null) return 0; return obj.OrgCode.GetHashCode(); } }
查看完整描述

1 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

这很正常,因为你用Distinct()方法时,默认的Comparer是EqualityComparer<T_ZJ_PostTouch>.Default 这个comparer,对于大部分引用类型,比较的是引用。而你自己的 OrgCodeComparer比较的是OrgCode字段。

查看完整回答
反对 回复 2019-01-21
  • 1 回答
  • 0 关注
  • 375 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信