一个简单的比较器

本文介绍如何使用自定义类比较器实现列表元素的差集操作,具体包括类的定义、比较方法和获取哈希码的方法,通过示例演示了如何在列表中找出未绑定的元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

class TagComparer : IEqualityComparer<tag>
        {
            public bool Equals(tag x, tag y)
            {
                if (Object.ReferenceEquals(x, y)) return true;
                if (Object.ReferenceEquals(x, null) || Object.ReferenceEquals(y, null))
                    return false;

                return x.text == y.text && x.value == y.value;
            }

            public int GetHashCode(tag _tag)
            {
                if (Object.ReferenceEquals(_tag, null)) return 0;
                int hashTagNameCode = _tag.text == null ? 0 : _tag.text.GetHashCode();
                int hashTagValuCode = _tag.value.GetHashCode();
                return hashTagNameCode ^ hashTagValuCode;
            }
        }
        class tag
        {
            public tag(string txt, string val)
            {
                this.text = txt;
                this.value = val;
            }
            public string text { get; set; }
            public string value { get; set; }
        }

eg:

private List<tag> listtag = new List<tag>();

var leftTag = listtag.Except(bindedTag, new TagComparer()).ToList(); //取差集






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值