c# 两个<t>泛型的list如何用 union等去对比数组

1:创建自定义类,写入2个属性,并继承接口,重写三个方法

    public class CompStrR : IEquatable<CompStrR>
    {
        /// <summary>
        /// 原来数
        /// </summary>
        public string strA { get; set; }

        /// <summary>
        ///去除空格和忽略大小写后的数
        /// </summary>
        public string strB { get; set; }

        public bool Equals(CompStrR other)
        {
            if (other is null)
                return false;

            return this.strB == other.strB;
        }

        public override bool Equals(object obj) => Equals(obj as CompStrR);
        public override int GetHashCode() => (strA, strB).GetHashCode();

        //我由于只要对比STRB数据,所以就这样写
        public override int GetHashCode() => (strB).GetHashCode();
    }

2:实际中使用

IEnumerable<CompStrR> unionRR = new List<CompStrR>();//并集  两数组相加
IEnumerable<CompStrR> intersectRR = new List<CompStrR>();//交集   两数组共有
IEnumerable<CompStrR> exceptRR_NO_B = new List<CompStrR>();//a有b没有
IEnumerable<CompStrR> exceptRR_NO_A = new List<CompStrR>();//b有a没有
unionRR = rngRa.Union(rngRb);
intersectRR = rngRa.Intersect(rngRb);
exceptRR_NO_A = rngRb.Except(rngRa);
exceptRR_NO_B = rngRa.Except(rngRb);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值