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

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

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

慕的地6264312 2018-07-25 12:09:35
这是我用来测试的代码,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();//结果是4int 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贡献1780条经验 获得超5个赞

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

查看完整回答
反对 回复 2018-07-30
  • 1 回答
  • 0 关注
  • 1141 浏览

添加回答

举报

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