测试方法: List<Jury> list = new List<Jury>(); Jury a = new Jury { UserId = 11, UserName = "TT" }; Jury b = new Jury { UserId = 11, UserName = "TT" }; list.Add(a); list.Add(b); var tt = list.Distinct(new JuryComparer());
自定义类: 裁判public class Jury{ public int UserId { get; set; } public string UserName { get; set; }}
比较类:public class JuryComparer : IEqualityComparer<Jury>{ public bool Equals(Jury x, Jury y) { return x.UserId.Equals(y.UserId); } public int GetHashCode(Jury obj) { return obj.GetHashCode(); }}
1 回答
FFIVE
TA贡献1797条经验 获得超6个赞
因为它先使用 GetHashCode 做判断了.
public int GetHashCode(Jury obj)
{
return 0;
}
使用上面方法修正你的 GetHashCode 函数,事实上就是让 JuryComparer 的第一次比较永为真,这样你的 x.UserId.Equals(y.UserId) 就成为决定性因素了.
- 1 回答
- 0 关注
- 304 浏览
添加回答
举报
0/150
提交
取消