这是我用来测试的代码,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字段。
- 1 回答
- 0 关注
- 1141 浏览
添加回答
举报
0/150
提交
取消