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

Linq distinct无效,选择出来的还是重复项

Linq distinct无效,选择出来的还是重复项

呼唤远方 2018-12-07 00:41:06
  测试方法: 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) 就成为决定性因素了.

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

添加回答

举报

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